Power and complexity.
WHAT IT IS
A statically typed compiled language extending C with object orientation, generics and abstraction, while retaining low-level control.
WHAT DISTINGUISHES IT
Abstraction without runtime cost, as a design principle An enormous feature set Backward compatibility with C, largely
WHAT IT IS USED FOR
Game engines High-performance computing Trading systems Browsers and operating system components Embedded systems with resource constraints
WHAT MODERN C++ CHANGED
Smart pointers, managing lifetime automatically Move semantics, avoiding unnecessary copying Type inference Range-based iteration Standard threading
WHAT SMART POINTERS ADDRESS
Manual memory management, which was the primary source of faults.
WHAT THE GUIDING PRINCIPLE IS
Resource acquisition tied to object lifetime, so cleanup happens automatically.
WHY THAT MATTERS
It makes leaks and missed cleanup far less likely.
WHAT IT IS CRITICISED FOR
Size and complexity Many ways to do everything Long compilation times Difficult error messages
WHAT TO ESTABLISH IN A TEAM
Which subset of the language is used.
WHO IT SUITS
Performance-critical work where control matters.