Mastering C++ Standard Library Features

Mastering C++ Standard Library Features

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 6h 12m | 798 MB

Leverage the powerful features of the Standart library in Modern C++

Harness the power of the C++ STL and make full use of its components

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.

What You Will Learn

  • Analyze and demystify some major new features such as move semantics, variadic templates, and lambdas
  • Learn about new core language features and the problems they were intended to solve
  • Discover new techniques that allow computations to be performed at compile-time
  • Create safer and more convenient interfaces, without any extra hidden cost
  • Improve your code by replacing new/delete with smart pointers
  • Get well versed with the C++ STL and make full use of its components
Table of Contents

01 The Course Overview
02 Lvalues and Rvalues
03 Move Semantics
04 Practical Uses of std – -move
05 Value Categories – The Full Picture
06 Perfect Forwarding
07 Smart Pointers – Guidelines
07 Smart Pointers – What Problem Do They Solve
08 std – -unique_ptr
09 std – -shared_ptr and std – -weak_ptr
11 Standard Library Support for Movable Types
12 Rule of Five and Rule of Zero
13 Example – Implemeting std – -vector
14 Lambda Expressions – What Are They
15 Lambdas – Function Objects in Disguise
16 Anatomy of a Lambda
17 Lambdas – Versatile Tools
18 Storing Callable Objects
19 Passing Functions to Functions
20 Lambdas and the Standard Library
21 Lambdas as Local Functions
22 Safer Interfaces with Higher-Order Functions
23 Constant Expressions
24 `constexpr` in the Standard Library
25 Exceptions in `constexpr` Functions
26 Metafunctions
27 Metaprogramming Utilities in the Standard Library
28 Example – Creating a Compile-Time Set Data Structure