C++ Development: Advanced Concepts, Lambda Expressions, and Best Practices
2h 54mAdvanced2023-02-02
Authors

Bill Weinman
Tech Advocate, Entrepreneur, Programming Expert
Course details
Looking to enhance your understanding of C++? In this course, explore some of the more complex aspects of this core programming language. From the basics of class definition to operator overloads and move semantics, instructor Bill Weinman helps you develop the skills you need to get the most out of C++. Learn about lambda expressions, concurrency, constraints and concepts, optional and variant classes, structured bindings, and best practices for initialization. Along the way, Bill covers some of the newer features of C++ including how to use the format library, the spaceship operator, the span class, and more.
Skills covered
C++AdvancedProgramming LanguagesOpen SourceSoftware Development
Concepts
0. Introduction
- 01 - About this course
- 02 - Using the exercise files
1. Operator Overloads
- 03 - Operator overloads
- 04 - Nonmember operators
- 05 - Conversion operators
- 06 - Increment and decrement operators
- 07 - Functors
2. Move Semantics
- 08 - What is move semantics
- 09 - Understanding lvalues and rvalues
- 10 - Using std - - move
- 11 - The move constructor
- 12 - The move assignment operator
- 13 - The copy-and-swap idiom
- 14 - Rule of three and five
3. Lambda Expressions
- 15 - Lambda syntax
- 16 - Closures
- 17 - Algorithm predicates
- 18 - Challenge - A Lambda jump table
4. Constraints and Concepts
- 19 - Why constraints
- 20 - Constraint syntax
- 21 - Defining concepts
5. Optionals and Variants
- 22 - The optional class
- 23 - The any class
- 24 - The variant class
6. Concurrency
- 25 - Sleeping
- 26 - Threads
- 27 - The async function
- 28 - Mutex and lock
- 29 - Atomic variables
- 30 - The producer-consumer idiom
7. Other Subjects
- 31 - Initialization
- 32 - Structured bindings
- 33 - Random number engines
- 34 - The chrono library
- 35 - The filesystem library
8. Other C++20 New Features
- 36 - The format library
- 37 - The spaceship operator
- 38 - Integer comparisons
- 39 - The span class
Final Project and Conclusion
- 40 - Final project - Numword
- 41 - Thank you