C++ is well recognized programming language present on the market for quite a long time. But C++ as we know it today, especially C++17 is nothing like the C++ from more than 10 years ago or even older (some people remember Turbo C++). Not only language evolved, but programmers using it evolved and want elements meeting today's demand for specific language features. Contrary to popular believes C++ is not superset of C, especially today when most recent standards took certain aspects in opposite direction make them more incompatible. And using C style programming in what is intended to be C++ code is considered at least bad taste, if not antipattern. But knowing C and having the ability to use it along C++ is very useful skill, especially on the embedded software market which currently grows due to demand kindled by IoT.


Most popular C++ standards used today are:

C++11 ISO/IEC 14882:2011
C++14 ISO/IEC 14882:2014
C++17 ISO/IEC 14882:2017

anything before them is usually outdated. It doesn't mean companies don't stick to older standards, demanding from their programmers to struggle with fitting into only what's allowed in these earlier standards. Most programmer prefer moving forward and learning new things instead of learning how to use outdated things. These differences doesn't help the language to gain on popularity, but other languages suffer from version wars as well.

The biggest positive of new standards is they allow the programmer to completely escape from direct use of new and delete operators. A std::unique_ptr introduced in C++11 paired with std::make_unique introduced in C++14 is almost always better option than direct memory management.

Useful Projects

Here is the list of C++ project I believe are very useful, even if not very popular: