C++
Learn modern C++ (C++20/23): types, functions, pointers, RAII and smart pointers, classes and move semantics, the STL, templates, concepts and safe code.
What you'll learn
- Compile and structure C++ programs with headers, source files, namespaces and warnings.
- Use types, functions, references and parameter passing correctly in modern C++.
- Manage memory and resources safely with RAII, containers and smart pointers.
- Design classes with constructors, copy and move semantics, inheritance and virtual functions.
- Use the standard library: containers, algorithms, lambdas, ranges and vocabulary types.
- Write generic and robust code with templates, concepts, exceptions, threads and sanitizers.
Syllabus
Getting Started with Modern C++
Control Flow, Functions and Program Structure
- Control Flow and Range-Based Loops
- Functions and Parameter Passing
- Headers, Source Files, Namespaces and the ODR
Memory, Pointers and RAII
Classes, Copying and Moving
- Classes, Constructors and Destructors
- Copy and Move Semantics and the Rule of Zero, Three and Five
- Inheritance, Virtual Functions and Polymorphism
The Standard Library
- Containers and Their Costs
- Iterators, Algorithms, Lambdas and Ranges
- Vocabulary Types: optional, variant, string_view and span
Templates and Generic Programming
- Function and Class Templates
- Concepts and Constraints (C++20)
- auto, decltype, constexpr and Compile-Time Programming
Errors, Concurrency and Undefined Behaviour
- Exceptions, noexcept and std::expected
- Threads, Mutexes and Atomics
- Undefined Behaviour, Sanitizers and Common Bugs