The C++11 and C++14 Seminar
Based on a substantial understanding of C++, this course presents the standard of this programming language ISO/IEC 14882:2011 (more simply known as ISO C++11 or C++11) and the extended standard ISO/IEC 14882:2014 (more simply known as ISO C++14 or C++14). In this context, the changes in the new standards compared to the old ones ISO C++98 and ISO C++03 are addressed. The innovations are depicted and practiced during the seminar using operational examples.
The following subject matters are covered:
-
New Keywords for Handling Types and Declarations:
auto
decltype
using
- Alignment
alignas
alignof
- The keyword
nullptr
- New Types
- Strongly typed Enums
- Scoped Enums
- Unrestricted Unions
- Constant Expressions
- The New Keyword
constexpr
- Unicode Support
- Unicode Types
- Prefixes
- String Literals
- New Keywords for Class Design
override
For Controlled Overwriting of Methodsfinal
For Finalizing Methods and Classes
- Constructor Inheritance
- Constructor Delegation
- New Initialization Syntax
- Initialization Sequences
- The
std::initializer_list<T>
Container - Constructors with Value Lists
- The
- The R-Value Reference
- The Move Constructor
- Copyability and Movability of Objects
- The Use of
std::move()
- The application of
std::forward<T>()
in Templates
- Type Traits
static_assert
- The New Possibilities of the Directive
using
- Template Aliases
- Namespace Association
- Lambdas
- Subsequent Definition of Return Types
- Referencing Lambda Call Contexts
- Copying Lambda Call Contexts
- Variadic Templates
- The Thread Support of the Standard Library
- The Basic Mechanisms of Threading
- Mutexes
- Synchronizing and Condition Variables
- Atomic Operations
- Atomic Types
- Thread Local Storage
- Threading with Lambdas (closures)
- Futures
- Smart Pointers
std::unique_ptr<T>
std::shared_ptr<T>
std::weak_ptr<T>
- New Containers
std::forward_list<T>
std::unordered_set<T>
std::unordered_map<T>
- Regular Expressions
Completing with C++14
- Generic Lambda Expressions
- Deduction of the Function Return Type
- Binary Literals
- Number Group Separator in Literals
- The
deprecated
Attribute - More Complex
constexpr
Functions - Variable Templates
The seminar introduces the new standard through theory and practice. After the theoretical parts, practical exercises are being introduced so that the applicability of the new language and library elements can be tested by the participant.
The current versions of regular productive compilers usually support the C++14 standards. The best support is delivered by Clang C++ compiler closely followed by the GNU C++ compiler. But MS Visual C++ from the 2015 version on also provides a good enough implementation of the standards to use it in the seminar. The operating system used in the seminar is irrelevant. Usually it is Linux, Windows or MacOSX. Any other UNIX System can also be adopted.
Last modified 10.07.2021