Practical C++14 and C++17 Features

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.
Course info
Rating
(45)
Level
Intermediate
Updated
Dec 11, 2017
Duration
2h 33m
Table of contents
Description
Course info
Rating
(45)
Level
Intermediate
Updated
Dec 11, 2017
Duration
2h 33m
Description

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.

About the author
About the author

Giovanni Dicanio is a computer programmer specialized in both cross-platform C and C++, and Windows operating system development. He is a Microsoft MVP for Visual C++. He also blogs on msmvps.com/gdicanio.

More from the author
C++11 from Scratch
Beginner
5h 48m
Apr 24, 2017
More courses by Giovanni Dicanio
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone! My name is Giovanni Dicanio and the welcome to my course on Practical C++14 and C++17 Features. I'm a programmer specializing in C and C++ and a Pluralsight author. After the C++11 revolution, many additions and improvements were made to the C++ language that materialized in the C++14 and the C++17 standards. In this course we are going to cover practical new features introduced in C++14 and C++17 that will help you writing the simpler, clearer, and higher quality modern C++ code. Just to whet your appetite, some of the major topics that we will cover include automatic return type deduction, relaxed constxpr functions, the chrono library with its safe standard defined suffixes, polymorphic lambdas, and C++17 juice ranging from constxpr if to structure bindings just to name a few. By the end of this course, you'll be productive with the C++14 and C++17 practical features that you will be able to use to write better, clearer, and higher quality modern C++ code. Before beginning this course, you should be familiar with the basic elements of C++11 like those covered in my C++11 From Scratch course. I hope you'll join me on this journey to learn useful, modern C++ features with the Practical C++14 and C++17 Features course at Pluralsight.

Miscellaneous Improvements to C++11
Hi. This is Giovanni Dicanio. Welcome back to this module on Miscellaneous Improvements to C++11 in this course on Practical C++14 and C++17 Features. C++14 added several improvements to C++11 that can come in handy during your C++ coding. In this module I'll discuss some of these language improvements. In particular, in this module you'll start learning about constexpr functions, in particular the relaxed and extended form that was introduced in C++14. Then I'll discuss variable templates and I'll close the module discussing the deprecated attribute. So let's get started in the next clip with the constexpr functions.

Better Lambdas
Hi. This is Giovanni Dicanio. Welcome back to this module on Better Lambdas in this course on Practical C++14 and C++17 Features. In this module you'll learn some of the new improvements and additions made by C++14 to the previous C++11 lambdas. I'll also offer a brief introduction to lambdas as well so you can follow along even if you don't know what is a lambda. So after a quick basic introduction to lambdas, you'll learn about the C++14 generic lambdas and how they can simplify the way you write your lambda code in C++. I'll also introduce the new C++14 init-capture feature for lambdas. So let's get started in the next clip with a brief introduction to lambdas. If you already know what is a lambda, feel free to skip the following clip or just follow along and consider the next clip as a brief nice refresher on lambdas.

Practical Convenient C++17 Language Improvements
Hi. This is Giovanni Dicanio. Welcome back to this module on C++17 Language Improvements in this course on Practical C++14 and C++17 Features. So far in this course you learned practical improvements introduced in C++14. Now in this module you'll learn some of the new improvements introduced by C++17 to the C++ language that will help you writing simpler, clearer, and more expressive code. In particular, in this module you will learn about nested namespaces, variable declarations in if and switch statements. These are two small, but nice features introduced in C++17. If constexpr, which is a big feature, convenient especially when you write template code, and structured bindings which helps writing concise and expressive C++ code. So there's lots of interesting material ahead. Let's get started in the next clip, talking about nested namespaces.