Programming in C++ 2011 / C++ 2014 / C++ 2017
New Features – 4 Days

Course Description

The Programming in C++2011 / C++2014 / C++2017 New Features course will present additional capabilities of the ISO Standard.  This course will present additional capabilities of the ISO Standard  C++2011 (C++11 ), C++2014 (C++14) and C++2017 (C++17) programming languages. All features shown are applicable to all C++11 / C++14 / C++17 (platform) variants. 

Course Objectives

The course objective is to provide information on the C++11, C++14, and C++17 language features in each of the coverage areas.


It is assumed that the participant has programming experience with C++ at either the 1998 or 2003 standards level.



namespace issues

collisions / pollutions

nested namespace definition (C++17)

namespace aliases

inlined namespaces

attributes on namespaces (C++17)

                                       attributes on namespaces without repetition (C++17)

(Data) Type Initialization

uniform (universal brace) initialization

auto type deduction

new rules for direct initialization (C++17)

alternate type deduction on declaration (C++14)

                                      aggregate member initialization (extended in C++14)

                                      user defined literals (suffixes)

Defining and using classes


default keyword

delete keyword

delegating (overloaded) constructors

template classes

template aliases

forward references to template aliases

variadic templates

fold expressions (C++17)

empty parameter packs (C++17)

                                                          using declarations in parameter pack (C++17)

typename in a template template-parameter  (C++17)

                                                allow constant evaluation for non-type

template arguments (C++17)

                                                template argument deduction (C++17)

                                                auto deduction of non-type parameters (C++17)

                              Pointers and references

smart pointers


                                                          shared_ptr (and additions (C++17))



move semantics

move reference (operations)

move constructor

move assignment (operator function)

guaranteed copy elision (C++17)

Exception Handling

using  noexcept

                                                using  std::set_terminate( )

                                                exception classes

deprecated dynamic exception specifications

removing dynamic exception specifications (C++17)

                                                std::uncaught_exceptions( ) (C++17)

Data Operations



                                                move semantics

passing objects to functions

by move reference


using override

using final

aggregate initialization (C++17)

                                                inheriting constructors (C++17)



                                                constexpr declared (C++14)

                                                return type deduction (C++14)

lambdas (anonymous functions)

outer / inner values


captures by value-move (C++14)

                                                          capture of *this (C++17)

auto parameters (C++14)

trailing return type

constexpr usage (C++17)

                                      The Standard Template Library

                                                range-based for loop

                                                          begin( ) and end( ) methods

different begin( ) and end( ) types (C++17)

standard defined literals (C++14)

associative container heterogeneous lookup (C++14)

tuple container (with extensions in C++14)

decomposition declarations (C++17)

regular expressions

thread operations (and mutex synchronization)

shared timed mutex (C++14)

shared lock (C++14)

                                                          std::shared_mutex (C++17)

random number operations

clock and timing capabilities

memory control features (C++17)

                                                string_view (C++17)

                                                std::auto_ptr removed (C++17)

                                                std::filesystem (C++17)


                                       Miscellaneous Features

                                                type aliases


                                                constexpr declared variable

type traits

static assert

optional text message (C++17)

enumerated (scoped) class

attributes (C++17)

                                                          direct list initialization (C++17)

binary literals (C++14)

                                                          hexadecimal floating-point literals (C++17)

                                                [[deprecated]] attribute (C++14)

                                                removal of trigraphs (C++17)

                                                register keyword deprecated

                                                register keyword removed (C++17)

                                                memory alignment

alignment memory allocation functions (C++17)

                                                __has_include preprocessor conditional (C++17)

                                                [[fallthrough]] attribute (C++17)

                                                [[nodiscard]] attribute (C++17)

                                                [[maybe_unused]] attribute (C++17)

initialization for if and switch (C++17)

                                                constexpr if statements (C++17)

                                                inlined variables (C++17)

Other courses to explore:

Programming in the C Language: Onsite, Tailored, Low Cost

Programming in Python –  Essential Features and Techniques

Programming in Perl – Basic / Intermediate: Onsite, Tailored

Don’t forget to check out our monthly specials to save – Monthly Specials


Print Friendly, PDF & Email