Update to C++17

Learn about the new features in C++17!
Extend and update your knowledge of C++
Know the new language features in C++17
Understand the new language features in C++17
Be able to use the new language features in C++17 idiomatically

This course is intended for programmers who are familiar with C++11 and C++14 to at least Intermediate level.

While C++17 turned out not to be as big a release as originally planned, it still has many new features and improvements to the language. It continues the “Modern C++” theme of adding better abstractions, providing more support for a functional style of programming and doing more work at compile time. There are many features which library developers and compile-time programmers will find useful, along with features like structured bindings which every C++ application developer will want to use!

The course begins with the changes to the core C++ language. These include structured bindings, which make working with compound objects much easier, and initializers in if statements, which will enable you to write code which branches on the return value from a function call much more concisely.

We then cover the changes to the C++ Standard Library, starting with new functions for converting between strings and numbers. These are much more efficient than the older alternatives and are ideal for writing code that processes large strings such as XML or JSON. The string_view class, which never creates temporary objects, provides a convenient way of referring to elements in such strings, as well as a more efficient way to pass string literals to function arguments which expect a std::string. The “vocabulary types”, std::variant, std::optional and std::any, provide safer alternatives to idioms which derive from C (unions, null/non-null pointers and pointer to void respectively.) We also cover improvements to working with std::map and std::multimap, and a faster way of searching strings.

The following two sections deal with two libraries which are completely new in C++17: the filesystem interface and parallel versions of library algorithms. Finally, we cover compile-time programming, including the very important “constexpr if” feature. Now you can write programs which execute at compile-time, without having to be a template metaprogramming guru!

Each lecture contains a demonstration of the features being covered and has downloadable exercises, with solutions. These are fairly simple and test your understanding of the topic you have just learnt.

After successfully completing this course, you will have a good knowledge of the new features in C++17 and how to use them.

Tutorial Bar
Logo