C++20 Update for C++ Developers


CPP20Update - Version:1
Description
A three-day instructor-led course covers the new features in C++20 language and standard library. C++20 is a major update to the language and includes new additions like immediate functions, concepts, coroutines and modules and also enhancements to existing language features like lambdas and constexpr virtual functions. With C++20 the language becomes more powerful and capable and enables writing more correct and efficient code.
Intended audience
C++ Developers with experience in C++11/C++17 standards
Expand All
  • Core Language
    • Basics
      • Deprecation of inconsistent arithmetic conversion on enumerations
      • Consistency improvements for comparisons
      • char8_t and UTF-8
      • Signed integers and 2’s complement
      • Consistent bitwise shift operators
      • Array size deduction in new-expressions
      • Using enum
      • Nested inline namespaces
    • Compile Time
      • constinit
      • Enhancements to constexpr: virtual, try, allocations,
      • consteval and immediate functions
    • Range-based for loop with initializer
    • [[no_unique_address]] attribute
    • [[likely]] and [[unlikely]] attributes
    • Class Related
      • Aggregates
        • Aggregate designated initializers
        • Default member initializers for bit-fields
        • Initializing aggregates from a parenthesized list of values
      • Uniform Initialization semantics and preventing accidental aggregates
      • Conditionally Trivial Special Member Functions
      • Class-specific destroying deallocation functions
      • Default comparison operators
      • 3-way comparison operator (spaceship operator)
      • Conditionally explicit specifier
    • Template Related
      • Abbreviated function template
      • Relaxed requirements for typename with dependent names
      • Non-type template parameter using float and literal class types
    • Lambda Expression Enhancements
      • Familiar template syntax for generic lambdas
      • Lambda expressions init-capture and template pack expansion
      • Explicit by value capture of this and deprecating implicit capture of this by value
      • Default construction and assigning
    • Constraints
      • Requirements
      • Require clause
    • Concepts
      • Defining Concepts
      • Standard library Concepts
      • Constrained auto declaration
    • Coroutines
      • Execution model and compiler transformations
      • Promise
      • co_yield, co_redturn and co_await
      • Generator
    • Modules
  • Standard Library
    • Formatting Library
    • Threading
      • Floating point atomics
      • shared_ptr atomics
      • std::barrier
      • std::latch
      • std::counting_semaphore
      • std::jthread and cancelation classes
    • Ranges Library
  • Experience in programming with modern C++ is a must.
  • Experience with C++17 is preferable.
  • Become versed in C++20 language features and core standard library facilities new in C++20
  • The participants will understand the new additions to the language.
  • The participants will understand the purpose and optimal usage of new library additions.
  • The participants will be able to understand the internal workings of coroutines.
  • The participants will be able to use the new module system.
  • The participants will be able to use the new synchronization facilities.