Study Roadmap

8-week structured curriculum to master modern C++ from C++14 to C++23

1

Week 1-2: C++14/17 Foundation

Modern type system and compile-time computation

Topics Covered

  • Generic Lambdas (auto parameters)
  • Return type deduction
  • Variable templates
  • Binary literals & digit separators
  • Relaxed constexpr

Practice Goals

  • Refactor legacy functors to lambdas
  • Convert new expressions to make_unique
  • Use constexpr for compile-time constants
2

Week 3-4: C++17 Expression Evolution

Structured bindings and compile-time branching

Topics Covered

  • Structured bindings
  • if constexpr
  • string_view
  • optional, variant, any
  • Inline variables
  • Fold expressions

Practice Goals

  • Replace std::tie with structured bindings
  • Convert SFINAE to if constexpr
  • Use string_view for read-only string parameters
  • Model optional return values
3

Week 5-6: Memory & Resource Management

Smart pointers, move semantics, and RAII patterns

Topics Covered

  • unique_ptr deep dive
  • shared_ptr and weak_ptr
  • Move semantics and perfect forwarding
  • Rvalue references
  • Rule of 0/3/5
  • RAII patterns

Practice Goals

  • Implement a RAII resource wrapper
  • Convert raw pointers to smart pointers
  • Implement move constructors
  • Fix dangling reference bugs
4

Week 7-8: Functional Programming

Lambdas, STL algorithms, and functional patterns

Topics Covered

  • Lambda captures and closures
  • Generic lambdas (C++14)
  • STL algorithms library
  • Function objects and bind
  • Higher-order functions

Practice Goals

  • Replace loops with STL algorithms
  • Create reusable predicate functions
  • Implement custom algorithms
5

Week 9-10: C++20 Concepts & Constraints

Type constraints and template requirements

Topics Covered

  • Concept definition and usage
  • Standard library concepts
  • Requires clauses
  • Concept-based overloading
  • Abbreviated function templates

Practice Goals

  • Define custom concepts
  • Replace SFINAE with concepts
  • Create constrained algorithms
6

Week 11-12: C++20 Ranges & Views

Declarative data processing pipelines

Topics Covered

  • Range concepts
  • Views and lazy evaluation
  • Pipeline operators
  • Custom views
  • Range algorithms

Practice Goals

  • Convert loops to range pipelines
  • Compose complex transformations
  • Understand view lifetime
7

Week 13-14: C++23 Error Handling & Generators

Monadic error handling and coroutine sequences

Topics Covered

  • std::expected
  • Monadic operations
  • std::generator
  • Coroutines overview
  • Lazy sequences

Practice Goals

  • Convert exception-based code to expected
  • Create generator functions
  • Build error handling pipelines
8

Week 15-16: C++23 Advanced Features

mdspan, deducing this, and modern patterns

Topics Covered

  • std::mdspan
  • Multi-dimensional arrays
  • Deducing this
  • Recursive lambdas
  • std::print and std::format

Practice Goals

  • Implement matrix operations with mdspan
  • Create recursive lambda utilities
  • Replace iostream with std::print

Weekly Study Schedule

Monday-Wednesday

Read documentation and theory

Thursday-Friday

Practice with code examples

Weekend

Mini project and review