Course

Cpp

Topics in Cpp.

85 Topics 6 Quizzes 8h 30min Est. Time

Curriculum

1
Template Basics & Instantiation
Template Basics & Instantiation
2
Template Specialization
Template Specialization
3
Variadic Templates & Parameter Packs
Variadic Templates & Parameter Packs
4
Alias Templates & Template Template Parameters
Alias Templates & Template Template Parameters
5
Template Argument Deduction & Guides
Template Argument Deduction & Guides
6
CRTP (Curiously Recurring Template Pattern)
CRTP (Curiously Recurring Template Pattern)
7
Compile-Time Computation (constexpr templates)
Compile-Time Computation (constexpr templates)
8
Type Traits & SFINAE
Type Traits & SFINAE
9
SFINAE Fundamentals
SFINAE Fundamentals
10
std::enable_if & Overload Resolution
std::enable_if & Overload Resolution
11
Expression SFINAE & decltype
Expression SFINAE & decltype
12
C++20 Concepts
C++20 Concepts
13
Requires Expressions
Requires Expressions
14
Abbreviated Function Templates
Abbreviated Function Templates
15
Constrained Auto & Template Template Constraints
Constrained Auto & Template Template Constraints
16
Value Categories (lvalue, xvalue, prvalue)
Value Categories (lvalue, xvalue, prvalue)
17
Move Constructor & Move Assignment
Move Constructor & Move Assignment
18
std::move & std::forward
std::move & std::forward
19
Return Value Optimization (RVO/NRVO)
Return Value Optimization (RVO/NRVO)
20
Reference Collapsing Rules
Reference Collapsing Rules
21
Move-Only Types & unique_ptr
Move-Only Types & unique_ptr
22
Perfect Forwarding in Variadic Templates
Perfect Forwarding in Variadic Templates
23
RAII Principle
RAII Principle
24
std::unique_ptr Implementation
std::unique_ptr Implementation
25
std::shared_ptr & Control Blocks
std::shared_ptr & Control Blocks
26
std::weak_ptr & Circular References
std::weak_ptr & Circular References
27
Custom Deleters
Custom Deleters
28
make_shared vs make_unique Performance
make_shared vs make_unique Performance
29
enable_shared_from_this
enable_shared_from_this
30
Allocator Model
Allocator Model
31
std::vector Growth & Reallocation
std::vector Growth & Reallocation
32
std::map vs std::unordered_map Internals
std::map vs std::unordered_map Internals
33
std::string SSO (Small String Optimization)
std::string SSO (Small String Optimization)
34
Iterator Categories & Invalidation
Iterator Categories & Invalidation
35
Parallel STL Algorithms (C++17)
Parallel STL Algorithms (C++17)
36
std::deque Block Structure
std::deque Block Structure
37
Virtual Function Table (vtable)
Virtual Function Table (vtable)
38
Virtual Inheritance & Diamond Problem
Virtual Inheritance & Diamond Problem
39
Dynamic_cast & RTTI
Dynamic_cast & RTTI
40
CRTP Static Polymorphism
CRTP Static Polymorphism
41
Policy-Based Design
Policy-Based Design
42
std::variant & std::visit Pattern
std::variant & std::visit Pattern
43
Type Erasure (std::function, std::any)
Type Erasure (std::function, std::any)
44
std::thread & jthread (C++20)
std::thread & jthread (C++20)
45
Mutex, Lock Guard & Unique Lock
Mutex, Lock Guard & Unique Lock
46
Condition Variables
Condition Variables
47
std::atomic & Memory Ordering
std::atomic & Memory Ordering
48
std::future & std::promise
std::future & std::promise
49
Thread Pools with std::async
Thread Pools with std::async
50
Lock-Free Programming with C++ Atomics
Lock-Free Programming with C++ Atomics
51
Coroutine Concepts (promise_type, awaitable)
Coroutine Concepts (promise_type, awaitable)
52
co_await & Awaitable Types
co_await & Awaitable Types
53
co_yield & Generator Patterns
co_yield & Generator Patterns
54
co_return & Promise Finalization
co_return & Promise Finalization
55
Return Value Types (task, generator)
Return Value Types (task, generator)
56
Coroutine Frames & Allocation
Coroutine Frames & Allocation
57
Real-World: async I/O with Coroutines
Real-World: async I/O with Coroutines
58
constexpr Functions (C++11/14/17/20)
constexpr Functions (C++11/14/17/20)
59
consteval & constinit (C++20)
consteval & constinit (C++20)
60
Compile-Time Strings
Compile-Time Strings
61
constexpr Containers
constexpr Containers
62
Compile-Time Hashing
Compile-Time Hashing
63
if constexpr for Compile-Time Branching
if constexpr for Compile-Time Branching
64
Static Reflection with constexpr
Static Reflection with constexpr
65
Stack Unwinding & Exception Handling
Stack Unwinding & Exception Handling
66
RAII & Exception Guarantees
RAII & Exception Guarantees
67
noexcept Specification & Optimization
noexcept Specification & Optimization
68
Exception Categories & Standard Exceptions
Exception Categories & Standard Exceptions
69
Exception-Safe Resource Management
Exception-Safe Resource Management
70
Copy-and-Swap Idiom
Copy-and-Swap Idiom
71
std::expected for Error Handling (C++23)
std::expected for Error Handling (C++23)
72
As-If Rule & Undefined Behavior
As-If Rule & Undefined Behavior
73
Copy Elision (C++17 Guaranteed)
Copy Elision (C++17 Guaranteed)
74
Return Value Optimization
Return Value Optimization
75
Inline Expansion Heuristics
Inline Expansion Heuristics
76
Devirtualization
Devirtualization
77
Loop Optimization & Vectorization
Loop Optimization & Vectorization
78
Profile-Guided Optimization (PGO)
Profile-Guided Optimization (PGO)
79
Module Declarations & Interfaces
Module Declarations & Interfaces
80
Module Partitions
Module Partitions
81
Header Units vs Modules
Header Units vs Modules
82
Module Ownership & Reachability
Module Ownership & Reachability
83
Import & Export Semantics
Import & Export Semantics
84
Private Module Fragments
Private Module Fragments
85
Migrating from Headers to Modules
Migrating from Headers to Modules

Quizzes

C++ Basics
5 questions
C++ Core Concepts
5 questions
C++ Intermediate
5 questions
C++ Advanced
5 questions
C++ Expert
5 questions
C++ Mastery
5 questions