What is C++?
But this requires a ton of language features.
18 different forms of initialisation.
And a 260 page book just to explain move semantic.
Needs proper tooling from day 1: clang-tidy, cppcheck, ASAN etc.
And the complete understanding of the guideline.
Because even modern c++ won’t save you.
Nothing will stop you from incorrectly assigning smart pointers.
Just as with raw pointers.
So you should write good code, don’t make mistakes.
This is a high risk, high reward game.
And when you make a mistake, it has nothing to do with the language design.
It’s because you are holding it wrong.
But what about your team members? Are they holding it wrong too?
C++ is great, made by a lot of smart people, but ask these questions before starting a new a project in it:
Clever abstractions are great, but always come with an overhead: complexity. Abstracted C++ programming can be efficient in performance, but can be very hard to maintain.
#cpp