Learning more about C++
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.