https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116178

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to antto from comment #5)
> so maybe some kind of a rule could be made, for example:
> "if stable (the default -std) has gotten "old", and the current date has
> advanced several C++ versions forward, then: unstable would be the one that
> is not newer than the date"
> ...which for today could mean -std=c++unstable == -std=c++23
> and experimental could just be the very very newest even if it merely has a
> temporary name (like "c++2b")

Having *two* new options with unstable meaning sounds like it would just be
confusing.

> this is just IMO a handy alias/nickname for an actual language version, and
> i don't think anyone should use it for very serious things, after all it is
> going to be a moving target, it would depend on the gcc version, it's just a
> lazy way to say "give me something new and dangerous"

But what's the actual use case? Are you going to use C++23 features in your
code? Then you need to enable -std=c++23 support, but you don't need -std=c++26
unless you're using those features.

If you use -std=c++latest and it only gives you C++20, that's not useful for
your code trying to use C++23 features.

If you want to play with new features, there's a flag to enable them already.
Does -std=c++whatever actually support some new use case that you can't do
today? Or just "I can't be bothered to decide, give me something new"?

Reply via email to