Topics / C++
C++
Systems programming, game engines, and high-performance code. Modern C++ from the basics.
Why learn C++?
-
The default language when performance and control matter most.
-
Behind nearly every game engine, browser, database, and trading system.
-
Modern C++ is leaner and safer than its reputation.
-
A foundation that makes every other language easier to understand.
What you can build with C++
Game engines and graphics High-frequency trading and HPC Embedded and systems programming Performance-critical libraries
C++ tutorials
30 articles · page 1 of 2Hand-written tutorials, ordered as a recommended learning path.
- 01 CMake Tutorial Learn modern CMake for C++ — targets, properties, and dependencies — and configure a small project that compiles cleanly across platforms.
- 02 Coroutines Understand C++20 coroutines — co_await, co_yield, co_return — and how they enable async and generator-style code without blocking threads.
- 03 constexpr How constexpr, consteval, and constinit let you move computation from runtime to compile time, with practical patterns and the rules that govern them.
- 04 Design Patterns Tour the most useful design patterns in modern C++ — singleton, factory, observer, strategy, RAII — and learn when each one earns its keep.
- 05 Exceptions vs Errors Compare exceptions and error codes in C++ for handling failures — performance, ergonomics, and when each style fits real codebases.
- 06 Iterators A practical walk through C++ iterator categories, the ranges library, views, and how to compose pipelines that are both safe and zero-overhead.
- 07 C++ Lambdas Master C++ lambdas: syntax, capture modes by value and reference, mutable lambdas, generic lambdas, and lifetime pitfalls.
- 08 C++ Atomics Understand the C++ memory model, memory orderings, and how std::atomic enables correct lock-free programming across threads.
- 09 Move Semantics How move semantics work in modern C++: rvalue references, std::move, perfect forwarding, and the rules that decide when your objects are copied versus moved.
- 10 C++ Modules Learn C++20 modules: what they replace, how to declare and import them, and how they speed up compilation and clean up the preprocessor.
- 11 C++ Namespaces Use C++ namespaces to organize code: nested namespaces, anonymous namespaces, using-declarations, and why using namespace std is dangerous in headers.
- 12 RAII RAII is the central idea behind safe C++ code. Learn how scope-bound resource ownership eliminates leaks, simplifies error handling, and scales beyond memory.
- 13 Refs vs Ptrs A clear comparison of references and pointers in C++, when each is the right tool, and how their semantics interact with const, ownership, and APIs.
- 14 Smart Pointers A practical guide to unique_ptr, shared_ptr, and weak_ptr in modern C++: ownership semantics, when to use each, and the pitfalls that lead to leaks and cycles.
- 15 STL Containers A practical comparison of the C++ standard containers: vector, list, deque, map, unordered_map, set, and friends, with guidance on which to pick when.
- 16 Templates & Concepts Templates are how C++ does generic code. Concepts (C++20) make that code readable and debuggable. Here is how both work together in practice.
- 17 string_view Learn how std::string_view gives you cheap, non-owning views into strings — when to use it, how it speeds up code, and how to avoid dangling references.
- 18 UB Pitfalls A guided tour of the most common undefined behavior traps in C++ and the habits, tools, and language features that help you avoid them in production code.
- 19 GoogleTest Set up GoogleTest in a CMake project and write clear unit tests with assertions, fixtures, and parameterized tests for confident C++ code.
- 20 C++ VTables Learn how C++ virtual dispatch works under the hood: vtables, vptrs, override, final, and the cost of polymorphism.