Mastering Modern C++ with Donis Marshall


Mastering Modern C++ with Donis Marshall


September 20, 2017 (3 days)


10 AM - 6 PM EDT


Knowledge of the basic features of C++


Live Interactive Virtual



Recent releases of C++ have modernized the language and provide many compelling and unique features to the language, such as lambdas, threading, type deduction, move semantics, and much more.

Attendees learn how to use these features effectively so that their software is correct, efficient, maintainable, and portable. This course covers C++ 11 / 14 / and 17 and both intermediate and advanced topics. Hands-on labs provide students important real-world experience. All attendees receive a copy of the slides, source code, real-time feedback, interactive expert instructor lecture, labs, and demos.

Donis Marshall has been working in the software industry for over 20 years, is a published author and has provided expert technical training to thousands of developers. Donis is also one of the few trainers endorsed by Microsoft Global Learning Services.

Topics include:
• Modern C++ as a better C++; Improved syntax
• Move semantics
• Smart memory management
• Functional programming and lambda functions
• Concurrency and multi-threading
• Type safeness
• Best practices

Course Outline
New Language Features I
• auto
• decltype
• noexcept
• constexpr
• nullptr
New Language Features, II
• Uniform initialization and initializer lists
• Default template parameters
• Function declaration syntax
• New fundamental data types
Move Semantics
• What is move?
• Copying versus moving: performance
• Rvalue references
• Move constructor and move assignment
Using Move
• Arrays and containers
• File streams
• User-defined copyable and movable classes
• Composition and inheritance
• Perfect forwarding
Advanced Parameterized Templates
Smart Pointers and Memory Management
• Design rationale
• Class shared_ptr
• Destruction policies
• Class weak_ptr
• Class unique_ptr
• Performance and reliability
Lambda Functions
• What is a lambda functions
• The closure of a lambda function: closure
• Using lambda functions with auto
• The mutable keyword
Functional Programming in C++
• Overview C++ as a multi-paradigm programming language
• Universal function type (polymorphic) wrappers (std::function)
• Binders and predefined function objects (std::bind)
• Lambda functions versus binders
• A uniform function framework
Lambda Functions
• What is a lambda functions
• The closure of a lambda function: closure
• Using lambda functions with auto
• The mutable keyword
Concurrency Fundamentals
• Threads in C++; properties
• Promises and return arguments
• Threads in detail
• Mutexes and locks
Advanced Concurrency
• Synchronization and condition variables
• Futures
• Launch policies
• Waiting and polling
• Example: Producer-Consumer pattern

Fill out my online form.