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 algirithms, 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 benificial 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 neccessary theory, but always by example. How to compare pointers to make it safe on any platform? Why most of architectures are 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 synchronisation in multithreaded application?
Every example has short but solid theoretical reference from C++ language Standard, and if neccessary 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 desent lelel 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.