Video description
Harness the power of the C++ STL and make full use of its components
About This Video
- Develop high-quality, fast, and portable applications by leveraging the power of the C++ Standard Library
- Work with the STL algorithms and boost your productivity as a C++ developer with the most impactful features of C++11/14/17
- Migrate from older versions of C++ to Modern C++ without any hassle and master its best practices for software development
In Detail
C++ has come a long way and has now been adopted in several contexts with the latest updates of the STL and with C++17 on its way.
This video course will take you through C++'s Standard library and the most important features of C++11/14/17. You will begin with new language features and will gradually move on to library components and then to the traps and pitfalls and ways to avoid them. You will learn about STL components such as , smart pointers, `std::function`, `std::move`, and `std::exchange`, while at the same time reinforcing and deepening your understanding of the new language features. From here, you will learn to examine containers, iterators, function objects, with STL algorithms and lambda expressions. You will also be introduced to some upcoming C++17 additions including language features such as `constexpr` lambdas, and library additions such as the new algebraic data types and metaprogramming utilities. Throughout the course, you will learn the common pitfalls in "old" C++ programming and best practices for software development in Modern C++.
By the end of the course, you will have mastered Modern C++'s most impactful language and library features.
Audience
This video course is targeted at developers who would like to master Modern C++ language and library features. Prior C++ knowledge is assumed.
Table of Contents
Chapter 1 : Value Categories and Move Semantics
The Course Overview
Lvalues and Rvalues
Move Semantics
Practical Uses of std::move
Value Categories: The Full Picture
Perfect Forwarding
Chapter 2 : Smart pointers
Smart Pointers – What Problem Do They Solve?
std::unique_ptr
std::shared_ptr and std::weak_ptr
Smart Pointers: Guidelines
Chapter 3 : Creating Movable Classes
Standard Library Support for Movable Types
Rule of Five and Rule of Zero
Example: Implemeting std::vector
Chapter 4 : Discover Lambdas
Lambda Expressions: What Are They?
Lambdas: Function Objects in Disguise
Anatomy of a Lambda
Chapter 5 : Lambdas as First-Class Citizens
Lambdas: Versatile Tools
Storing Callable Objects
Passing Functions to Functions
Chapter 6 : Mastering Lambdas
Lambdas and the Standard Library
Lambdas as Local Functions
Safer Interfaces with Higher-Order Functions
Chapter 7 : Programming at Compile-Time
Constant Expressions
constexpr
in the Standard Library
Exceptions in constexpr
Functions
Chapter 8 : Computations on Types
Metafunctions
Metaprogramming Utilities in the Standard Library
Example: Creating a Compile-Time Set Data Structure