C++ Tutorials
This section is organized as a learning path.
What is included
- First-program setup and compilation
- IDE and editor setup for day-to-day development
- Types, variables, input/output, and control flow
- Functions, collections, pointers, classes, and inheritance
- Templates, STL algorithms, smart pointers, lambdas, and concurrency
- Building, debugging, testing, and writing modern idiomatic C++
- Modern error handling, concepts, modules, coroutines, formatting, and value-based APIs
How to use this section
Follow the pages from top to bottom if you are new to the language, or jump directly to the topic you need.
The newer tutorials deepen modern C++ areas that many older guides skip: std::expected, std::optional, std::variant, concepts, type traits, modules, coroutines, std::jthread, and modern formatting.
Additional advanced tutorials now cover chrono and formatting, richer ranges pipelines, and synchronization primitives such as latches, barriers, semaphores, and std::shared_mutex.
When you are no longer asking "how do I learn this?" and instead asking "which keyword, type, or header provides this?", switch to the full reference section.
Pick a starting track
- completely new to C++: start with setup, types, I/O, and control flow in order
- comfortable with basics but weak on day-to-day coding: jump to collections, classes, STL algorithms, and debugging
- already shipping C++ but updating your style: jump to modern memory, lambdas, concepts, modern error handling, and C++20/23 features
The goal is to keep you moving from your current level instead of forcing one rigid path for everyone.
Good starting sequence
If you are new to the language, a practical first path is:
That gives you a working toolchain, a usable editor workflow, and enough core language to keep moving.