C++ Development: Advanced Concepts, Lambda Expressions, and Best Practices

C++ Development: Advanced Concepts, Lambda Expressions, and Best Practices

2h 54mAdvanced2023-02-02

Authors

Bill Weinman

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
80,000 Toman