C++29 phases · 114 topics
Progress
0 / 114
Foundations
Template Basics & Instantiation
Template Specialization
Variadic Templates & Parameter Packs
Core Concepts
Alias Templates & Template Template Parameters
Template Argument Deduction & Guides
CRTP (Curiously Recurring Template Pattern)
Intermediate Skills
Compile-Time Computation (constexpr templates)
Type Traits & SFINAE
SFINAE Fundamentals
Advanced Topics
std::enable_if & Overload Resolution
Expression SFINAE & decltype
C++20 Concepts
Expert Level
Requires Expressions
Abbreviated Function Templates
Constrained Auto & Template Template Constraints
Mastery
Value Categories (lvalue, xvalue, prvalue)
Move Constructor & Move Assignment
std::move & std::forward
Ecosystem
Return Value Optimization (RVO/NRVO)
Reference Collapsing Rules
Move-Only Types & unique_ptr
Architecture
Perfect Forwarding in Variadic Templates
RAII Principle
std::unique_ptr Implementation
Optimization
std::shared_ptr & Control Blocks
std::weak_ptr & Circular References
Custom Deleters
Deployment
make_shared vs make_unique Performance
enable_shared_from_this
Allocator Model
Phase 11
std::vector Growth & Reallocation
std::map vs std::unordered_map Internals
std::string SSO (Small String Optimization)
Phase 12
Iterator Categories & Invalidation
Parallel STL Algorithms (C++17)
std::deque Block Structure
Phase 13
Virtual Function Table (vtable)
Virtual Inheritance & Diamond Problem
Dynamic_cast & RTTI
Phase 14
CRTP Static Polymorphism
Policy-Based Design
std::variant & std::visit Pattern
Phase 15
Type Erasure (std::function, std::any)
std::thread & jthread (C++20)
Mutex, Lock Guard & Unique Lock
Phase 16
Condition Variables
std::atomic & Memory Ordering
std::future & std::promise
Phase 17
Thread Pools with std::async
Lock-Free Programming with C++ Atomics
Coroutine Concepts (promise_type, awaitable)
Phase 18
co_await & Awaitable Types
co_yield & Generator Patterns
co_return & Promise Finalization
Phase 19
Return Value Types (task, generator)
Coroutine Frames & Allocation
Real-World: async I/O with Coroutines
Phase 20
constexpr Functions (C++11/14/17/20)
consteval & constinit (C++20)
Compile-Time Strings
Phase 21
constexpr Containers
Compile-Time Hashing
if constexpr for Compile-Time Branching
Phase 22
Static Reflection with constexpr
Stack Unwinding & Exception Handling
RAII & Exception Guarantees
Phase 23
noexcept Specification & Optimization
Exception Categories & Standard Exceptions
Exception-Safe Resource Management
Phase 24
Copy-and-Swap Idiom
std::expected for Error Handling (C++23)
As-If Rule & Undefined Behavior
Phase 25
Copy Elision (C++17 Guaranteed)
Return Value Optimization
Inline Expansion Heuristics
Phase 26
Devirtualization
Loop Optimization & Vectorization
Profile-Guided Optimization (PGO)
Phase 27
Module Declarations & Interfaces
Module Partitions
Header Units vs Modules
Phase 28
Module Ownership & Reachability
Import & Export Semantics
Private Module Fragments
Phase 29
Migrating from Headers to Modules
C++ RoadmapCpp
Space mark complete · Esc close · Drag pan · Wheel zoom