Deepen your understanding of C++ by exploring some of the more advanced aspects of this core programming language.
Overview
Syllabus
Introduction
- About this course
- Using the exercise files
- Operator overloads
- Nonmember operators
- Conversion operators
- Increment and decrement operators
- Functors
- What is move semantics?
- Understanding lvalues and rvalues
- Using std::move
- The move constructor
- The move assignment operator
- The copy-and-swap idiom
- Rule of three and five
- Lambda syntax
- Closures
- Algorithm predicates
- Challenge: A Lambda jump table
- Why constraints?
- Constraint syntax
- Defining concepts
- The optional class
- The any class
- The variant class
- Sleeping
- Threads
- The async function
- Mutex and lock
- Atomic variables
- The producer-consumer idiom
- Initialization
- Structured bindings
- Random number engines
- The chrono library
- The filesystem library
- The format library
- The spaceship operator
- Integer comparisons
- The span class
- Final project: Numword
- Thank you
Taught by
Bill Weinman