5 ms·
Yes, I work in a template heavy C++ codebase and the (already quite good) situation is getting better with each language standard. C++11 was really a turning p
by hendzen 10y ago
Yes, I work in a template heavy C++ codebase and the (already quite good) situation is getting better with each language standard.
C++11 was really a turning point for the language - features like 'auto', lambdas, and variadic templates have enabled succinct generic code that is both readable and highly performant.
Increased competition between the gcc and clang teams has also been a major improvement - both have implemented many C++17 features very quickly, and error messages have greatly improved in both compilers. This is especially welcome when developing templates. Clang's licensing has made it possible to integrate libclang in to vim/emacs (ycmd, irony-mode, rtags, etc) for very accurate completion/syntax checking, etc. Clang-format has also seen quite a bit of adoption, bringing the benefits of standardized formatting to large projects.
The sanitizers have also been a huge boon - getting automatic memory leak, buffer/heap overflow, use after free, uninitialized memory, integer overflow, etc is now as easy as compiling with '-fsanitize=[address|undefined|memory|etc]'.
Overall, C++(11+) is a very productive language if you have stringent performance and latency requirements and you need powerful abstraction facilities.