The Advanced C++ by example course is designed for Junior-to-Mid level C++ developers, students who completed C++ university course, teachers going to improve their course content. It assumes basic knowledge of all main C++ subjects: work with variables and program execution flow, work with pointers and memory, classes and OOP, templates and generic programming, Standard Library containers and algorithms, multithreading, because any of chapters may refer any other chapter.
This may raise a question, what do we study, if a learner supposed to know all C++? Well, even after learning C++ on a decent level, a lot of just interesting, or beneficial for you work, or sometimes even critical for avoiding common mistakes facts remain unknown, until you stumble into it by receiving a surprising bug.
This course offers Advanced C++ level, not only by providing all necessary theories, but always by example. How to compare pointers to make it safe on any platform? Why are most architectures little-endian? How (and why) to design your own memory allocator? How to crash a program by adding non-virtual destructor? How to break encapsulation using templates? How to deal with CPU caches synchronization in multithreaded application?
Every example has short but solid theoretical reference from C++ language Standard, and if necessary other documents (like IEEE standards). Every theoretical reference features a mind map for better understanding the structure of material.
All chapters and examples are numbered, to understand the direction of exploring the course. However, as it assumes some descent level of C++, you can skip and chapter entirely or start exploring from any chapter.
Work under the course content currently is in progress, and examples from the beginning are "more complete", than added the last, which could be just drafts or code snippets.