Click for commercial
Click for personal
Scott Meyers Training Courses
An Overview of the New C++ (C++11)
Specification of the latest version of C++
(“C++11”) was completed in 2011, and many compilers
now offer a wealth of
features from the revised language. And such features!
auto-declared variables reduce typing drudgery
and syntactic noise; Unicode, threading support, and
alignment control address
important functionality gaps; and rvalue
references and variadic templates facilitate the creation
of more efficient, more flexible libraries. The standard
library gains resource-managing smart pointers, new
containers, additional algorithms, support for regular
expressions, and more. Altogether, C++11 offers
much more than “old” C++. This
intensively technical seminar introduces the most important
new features in C++11 and explains how to get the most out
Participants will gain:
- Knowledge of the most important C++11 features and how they help produce better programs.
- Insights into how new features solve important problems.
- Understanding of which features are useful primarily to library writers, which to class authors, and which to virtually all C++ developers.
- Availability information regarding which features are available on which platforms.
Who Should Attend
Designers and developers who are using, considering using, or wish to know about the expanded capabilities of C++11. Attendees should be experienced with C++ and comfortable with its primary features (e.g., classes, templates, inheritance, STL, etc.). Familiarity with threading concepts (e.g., threads and mutexes) is helpful, but is not essential.
Lecture and question/answer. There are no hands-on exercises, but participants are welcome – encouraged! – to bring computers to experiment with the material as it is presented.
Three full days (six to seven lecture hours per day).
Detailed Topic Outline
- The History and Vocabulary of C++ Evolution
- Sample Program: C++98 vs. C++11
- Features for Everybody:
autofor Type Declarations
- “>>” as Nested Template Closer
- Unicode characters and strings
- Raw string literals
- Uniform initialization syntax
- Initializer lists
- Lambda Expressions
- Template Aliases
- Threading Support
- Library Enhancements:
- New Container Features
- Smart Pointers (
- Hash Tables
- Singly-Linked Lists
- Fixed-Size Arrays
- Regular Expressions
- Generalized Functors(
- Generalized Binder (
- New Algorithms
- Other New Library Functionality
- Features Primarily for Class Authors:
- Move Support, Rvalue References, and Perfect Forwarding
- Default Member Initialization
- Delegating Constructors
- Inheriting Constructors
- Features Primarily for Library Authors:
- Static Assertions
- Variadic Templates
- Alignment control
- Yet More Features (Overview)
- Removed and Deprecated Features (Overview)
- Sources for Further Information
For more information on this course, contact Scott directly.