Every project must colonize a valley of the language, declare a dialect, and bit-fiddle their own thing.
It might be a measure of popularity, but not of unity.
Every project must colonize a valley of the language, declare a dialect, and bit-fiddle their own thing.
It might be a measure of popularity, but not of unity.
When projects choose a subset of language features, it's dictated by their needs (like embedded programs disabling the standard library, or safety-critical libraries forbidding "unsafe" code out of caution). There are some people who vocally hate async, but their complaint is usually that everyone uses async even where it's unnecessary (meaning that it actually has very broad adoption).
This feels very different than having an unwanted C subset, some '98 features that were replaced in '11 and '13, with fixes for them in '20 and '26 and then projects taking years to settle on a new baseline, and still bickering whether exceptions may be allowed or not.
Rust has "editions" that let new projects disable old misfeatures (which it hasn't got many yet). Rust ecosystem is fully on board with the latest version.
Javascript is even more dramatic, where it will tell you to fix every single variable declaration, as people decided "var" was a mistake, and there is a whole new way of defining classes.
this is really not true in my experience. I don't remember last time I worked a project which outright banned specific C++ features or had a "dialect".
Neither of which are great measures probably. What about usefulness?
Lambdas are nice to have, just don’t nest them more than once.
I kinda wish things like std::variant had shorter syntax.
if anything i’m not a fan of c++ introducing language features as long verbose functions than to confidently make it an operator or a keyword.