What you'll learn:
- What programming idiom is
- Most common C++ idioms
- C++ polymorphism idioms
- C++ resource management idioms
- C++ optimization idioms
- C++ type system idioms
- C++ templates idioms
This course is about common C++ idioms that are related to:
- types system (return type resolver, type erasure, etc.)
- polymorphism (CRTP, virtual constructor)
- dependencies (PIMPL)
- templates (SFINE, enable-if, object generator)
- resource management (RAII, reference counting, resource return)
- optimization (SOO, EBO)
Idioms emerge from certain features of a programming language or a lack of them. Thus, learning C++ idioms helps better understand this language.
While learning those idioms, we will touch upon many parts of C++ like template parameters, including parameter pack, overload resolution, types of polymorphism, casting, conversion operators, placement new, special member functions, friend declarations, type deduction, etc.