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