← Back to context

Comment by dagmx

8 hours ago

This is about changing the default.

The issue with defaults is that people have projects that implicitly expect the default to be static.

So when the default changes, many projects break. This is maybe fine if it’s your own project but when it’s a few dependencies deep, it becomes more of an issue to fix.

If you’re relying on defaults, and upgrade, that is entirely your fault. Don’t hold everyone in the world back because you didn’t want to codify your expectations.

So it has the added benefit of having people learn how to set up their projects properly? Great.

C++ is very good at compatibility. If your code breaks when the standard changes, odds are it was always broke and you just didn't know. C++ isn't perfect, but it is very good.

  • On the other hand, if you didn't know your code was broken then it probably wasn't broken in a way that's catastrophic to whatever you use it for.

That sounds more like a problem of nonsensical assumptions… what possible expectation could there have been that GCC would never change this in the future?

  • The assumption is along the lines of "this works so why should I ever think about it again if I don't have to?"

    It's not an end user problem, anyway. The issue is the language didn't change in a backwards compatible way and also didn't require setting a language version.