1. About
  2. 1. Getting Started
    1. 1.1. Hello World
    2. 1.2. Hello CMake
  3. 2. Guessing Game
    1. 2.1. Coding the Guessing Game
  4. Basics
  5. 3. Basics
    1. 3.1. Control Flow
    2. 3.2. Primitive Types
    3. 3.3. Variables
    4. 3.4. References
    5. 3.5. Functions
    6. 3.6. Operators
    7. 3.7. Comments and Headers
  6. 4. Getting Organized
    1. 4.1. Classes
    2. 4.2. Structs
    3. 4.3. Enums
    4. 4.4. Namespaces
  7. 5. Classes and OOP
    1. 5.1. Friends and Overloads
    2. 5.2. Abstract Types and Virtual
    3. 5.3. Inheritance
    4. 5.4. Casts and Conversions
    5. 5.5. OOP Guidelines
    6. 5.6. Constructors and Destructors
    7. 5.7. RAII
  8. 6. Exceptions
    1. 6.1. Noexcept, Strong, and Basic
    2. 6.2. Swap
  9. 7. Pointers
    1. 7.1. Unique Ptr and Deleters
    2. 7.2. Shared and Weak Ptr
    3. 7.3. Raw and Function Pointers
    4. 7.4. PIMPL and Polymorphism
    5. 7.5. Reference Wrappers
  10. 8. Basic Containers
    1. 8.1. Arrays
    2. 8.2. Strings
    3. 8.3. List of Containers
  11. Details and More Advanced Topics
  12. 9. Move Semantics
    1. 9.1. Lvalues, Rvalues, and more; Oh My!
    2. 9.2. RVO and NRVO
    3. 9.3. std::move and RTTI
  13. 10. Template Basics
    1. 10.1. Specialization
    2. 10.2. Concepts and Type Traits
    3. 10.3. Forwarding
    4. 10.4. Type Deduction
    5. 10.5. Variadic Templates
    6. 10.6. Iterators
    7. 10.7. Customizing STL Containers
  14. 11. Functional Programming in STL
    1. 11.1. Lambdas and Functional
    2. 11.2. Tuple, Variant, Optional
    3. 11.3. Algorithms
  15. 12. Advanced Templates
    1. 12.1. Constexpr
    2. 12.2. TMP
    3. 12.3. CRTP
    4. 12.4. PBD Techniques
    5. 12.5. Type Erasure
    6. 12.6. Examples
  16. 13. Concurrency
    1. 13.1. Threads
    2. 13.2. Locks and Mutexes
    3. 13.3. Condition Variables, Latches, Barriers, and Semaphores
    4. 13.4. Async, Promises, and Futures
    5. 13.5. Atomics
    6. 13.6. Considerations and Atomic Memory Orders
    7. 13.7. Examples
  17. 14. C++20
    1. 14.1. Concepts
    2. 14.2. Modules
    3. 14.3. Ranges
    4. 14.4. Coroutines
    5. 14.5. Other Features
  18. In Practice
  19. 15. Tools
    1. 15.1. Testing
      1. 15.1.1. GTest
      2. 15.1.2. GMock
      3. 15.1.3. GDB and GProf
      4. 15.1.4. More Profiling and Analysis
    2. 15.2. Doxygen
    3. 15.3. CMake
    4. 15.4. Static Analysis
  20. 16. Project
    1. 16.1. SWE Tips
    2. 16.2. Design Patterns
  21. Appendix
  22. 17. Macros and the Compiler
  23. Further Resources

Excursion through C++

Not written by me, feel free to peruse