2 ms·
So-called "modern C++" (basically C++11 and beyond) is really immensely more pleasurable to work with than C++03/C++98. The confluence of automatic type deduct
by charles-salvia 10y ago
So-called "modern C++" (basically C++11 and beyond) is really immensely more pleasurable to work with than C++03/C++98.
The confluence of automatic type deduction, closures, and move semantics turned C++ into the language that it really ought to have always been, given the vision of Alexander Stepanov's STL. I mean really, before lambdas, using the STL was often really clunky.
But even before C++11, the main "killer features" of C++ has always been RAII (deterministic destruction of resources) and compile time duck typing (templates.) These features together have always made C++ an incredibly powerful language that lets you code at a high level of abstraction with zero runtime penalty (at the cost of longer compile times).
Nowadays, C++ can be almost Pythonic in its expressiveness. But I agree that the most urgent problem facing C++ is huge compile-times, which often result from a combinatorial explosion of new types created by templates that instantiate other templates, etc.
- nnethercote 10y agoMove semantics are so useful and powerful, but so complex. I've read multiple tutorials on them (all of them very long) and I still keep forgetting minor but critical details. (You could probably replace "move semantics" in that sentence with multiple other C++ features and still have a valid statement.)