Beruflich Dokumente
Kultur Dokumente
Duration: 3 days
Course Overview
This workshop is designed to provide participants with concepts, techniques and lessons
from experience that will help them be more successful in the C++ design and
programming.The greatest value from this course comes from the higher priorities given to
the depth of different subjects. Its perspective is that of the designer rather than that of the
programmer. The course is focused on design rather than diving deep into specifics.
Course Highlights
• C++ memory Internal
• C++ Idioms
• Exception internals
Day 1
Object Initialization & Cleanup
• Compiler Synthesized Constructor & Destructor
• Constructor Internals
• Destructor Internals
• Explicit constructor
• Copy Constructor v/s Assignment operator
• Order of Initialization
Day 2
• Types of new operator
Virtual Functions
• Internals
• Dual Dispatching
• Casting Internals
• Object Slicing
• Virtual Inheritance
Exception Handling
• Exception Internals
• Exceptions in Constructor
• Exceptions in Destructor
• Type inference
• Alias templates
• Variadic templates
• Multithreading model
• Static assertions
Lambda Expressions
• Why do we need this thing?
• Return type
• Lambda parameters
• Lambda body
• Storing lambdas
• std::function
• Closures
Capturing in C++
• Capturing by reference
• Limitations of capturing
• Mutable lambdas
Template Features
• Variadic templates
Template aliases
• Using using instead of typedef
Class Features
• In-class initializers for non-static data members
• Delegating constructors
• Default methods
• Deleted methods
Day 3
Move Semantics and Rvalue References
• Lvalue/rvalue revision
• const attribute .
• Reference initialization
• Rvalue references
• Moving members .
• std::move
Perfect Forwarding
• The forwarding problem and solution .
• Timed mutexes .
• Locks .
• call_once .
• Condition variables .
• notify_all_at_thread_exit .
• Inline Variables
• #__has_include
• Attributes extensions
Template Improvements:
• Class Template Argument Deduction
• Deduction Guides
• Fold expressions
Library Types
• std::optional<>
• std::variant<>
• std::any
• std::byte
• std::string_view