Practical C++14 and C++17 Features

Practical C++14 and C++17 Features
Practical C++14 and C++17 Features
English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 2h 33m | 319 MB

C++14 and C++17 added many new features to the C++ language. This course will teach you practical features introduced in C++14 and C++17, that you will be able to use to write clearer, simpler, and higher-quality modern C++ code.

After the C++11 "revolution," several other features were added by the C++14 and C++17 standards. While C++11 was a massive improvement over the previous C++98/03, C++14 and C++17 are kind of more incremental improvements; nonetheless, interesting, powerful and useful features were added in these recent C++ standards. In this course, Practical C++14 and C++17 Features, you'll learn many practical features added in the C++14 and C++17 standards, assuming you have only a basic knowledge of C++11, like the one you can get watching the "C++11 from Scratch" course; any advanced C++11 concepts will be explained here on a need-to-know basis. Among the many topics discussed in this course, you'll start learning small but nice features, like digit separators. Then you'll explore more substantial features, like polymorphic lambdas (the course will also introduce basic lambdas as well, so you're not left in the dark if you don't know C++11 lambdas), and relaxed constexpr functions. You'll also learn about improvements to the C++ standard library, like the new standard-defined suffixes for the Chrono library (which will be introduced as well), or std::make_unique in combination with the unique_ptr smart pointer (that'll be introduced here as well). Finally, you'll explore new practical C++17 features, ranging from nested namespaces, to "constexpr if" and structured bindings. The features will be discussed using both slides, and with concrete C++ demo code, including showing some subtle bugs, and how to fix them. After completing this course, you'll be able to write simpler, clearer, more efficient and higher-quality modern C++ code, applying the features discussed in this course in your own C++ codebases. This course targets developers who are already familiar with basic C++11, and want to extend their knowledge to practical C++ features introduced in C++14 and in C++17. If you need a beginner-oriented introduction to C++11, you can watch the "C++11 from Scratch" course.

Table of Contents

01 Course Overview
02 Introduction
03 Digit Separators
04 Binary Literals
05 Automatic Return Type Deduction
06 Summary
07 Introduction
08 Relaxed constexpr Functions
09 Demo Relaxed constexpr Functions in Action
10 Variable Templates
11 Demo Specializing Variable Templates
12 The [[deprecated]] Attribute
13 Demo Deprecating Code
14 Summary
15 Introduction
16 What Is a Raw Pointer
17 Requesting Memory Stack vs. Heap
18 Smart Pointers, unique_ptr, and make_unique
19 Demo Raw Pointers vs. unique_ptr Smart Pointer and make_unique
20 Standard-defined Literals and the Chrono Library
21 Demo Standard-defined Chrono Literals
22 Tuples and Fetching Elements by Type
23 Summary
24 Introduction
25 What Is a Lambda
26 Generic Lambdas
27 Demo Generic Lambdas in Action
28 Init-captures in Lambdas
29 Demo Init-captures with std move
30 Summary
31 Introduction
32 Writing Less Code with Nested Namespaces
33 Variable Declarations in if and switch Statements
34 Demo Variable Declarations in if Statements
35 Compile-time Evaluations with if constexpr
36 Demo if constexpr in Action
37 Writing Clearer Code with Structured Bindings
38 Demo Structured Bindings in Action
39 Summary and Thank You