I might be in the minority here, but I genuinely enjoy writing modern C++.
My complaints are about it's dependency management story and lack of integrated, standardized tools for things like dependencies, testing, logging, etc.
I might be in the minority here, but I genuinely enjoy writing modern C++.
My complaints are about it's dependency management story and lack of integrated, standardized tools for things like dependencies, testing, logging, etc.
I used to love C++ (and still do if we're talking about older standards), but the new stuff is just a baroque torture.
I don't mond C++ evolving into some thing of its own beyond all recognition, but there is a distinct lack of modern "C with Classes" language. Basically, C on steroids. There are attempts at that, but none is perfect and/or has enough traction to be viable.
There's more viable coding styles in C++ than I can honestly even bother to count. There's absolutely no reason to limit the language to one specific coding style when doing so would alienate large groups of users and you can set those limits yourself on your project.
For example, there are cases where the existence of move semantics necessitates adding some boilerplate when working with STL containers. There's no functional reason for it, just something to please the compiler.
One shudders to think how many times variations of that template have been written in house.
- structured bindings
- auto parameters in lambdas
- init statements in if and switch clauses
- template argument deduction for constructors
I was just recently appreciating the if statement with an initializer in C++17, which helps me express exactly what I want for variable scope in one line instead of multiple awkward ones.