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
Introduction
- About this course
- Using the exercise files
Operator Overloads
- Operator overloads
- Nonmember operators
- Conversion operators
- Increment and decrement operators
- Functors
Move Semantics
- 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 Expressions
- Lambda syntax
- Closures
- Algorithm predicates
- Challenge - A Lambda jump table
Constraints and Concepts
- Why constraints
- Constraint syntax
- Defining concepts
Optionals and Variants
- The optional class
- The any class
- The variant class
Concurrency
- Sleeping
- Threads
- The async function
- Mutex and lock
- Atomic variables
- The producer-consumer idiom
Other Subjects
- Initialization
- Structured bindings
- Random number engines
- The chrono library
- The filesystem library
Other C++20 New Features
- The format library
- The spaceship operator
- Integer comparisons
- The span class
Final Project and Conclusion
- Final project - Numword
- Thank you