This four-day course introduces the new features of ISO 14882 C++, known as C++11 and how they relate to the previous incarnation, C++98.
The C++11 standard marks a fundamental change to the C++ language. Bjarne Stroustrup, originator of C++, refers to it as “feeling like a completely new language”. The course looks at some of the changes to the language and how they affect the way we write C++ code.
The C++14 update to the standard added a range of updates and new features to improve programming in C++.
- Provide a background into the C++ features that have changed
- Provide an overview of the new language features
- Understand how the new features change C++ programming style
- Give practical experience of the new features
- Give the confidence to apply these new concepts to your next project
Delegates will learn:
- The new extensions to the C++ language
- Some of the performance impacts of the new features
- The extensions to the Standard Template Library
- Some of the new Standard Libraries
- An introduction to the new C++ threading model
This course is not intended to be a comprehensive C++ course and it is expected that students will already have a solid working knowledge of C++98, in particular.
- Object Oriented design
- The Standard Template Library
Ideally, attendees would have completed the Feabhas course C++-501 C++ for Embedded Developers.
Who should attend?
This course is aimed at experienced C++ developers who want to quickly understand the new facilities of C++11.
- Four days
- Delegate handbook
- Delegate datakey
At least 50% of the course is hands-on exercises. Students will be programming on a platform environment, either Windows or Linux, using an appropriate toolchain.
- Automatic type deduction
- Using aliases
- Class definition and objects
- Cascading constructors
- Default constructors
- Brace initialisation syntax
- Initializer lists
- std::array and std::vector
- Inheritance and substitution
- Dynamic polymorphism
- Pure virtual functions
- Managing object lifetimes
- The Rule of Three
- The Copy-Swap idiom
- rvalue references
- Resource pilfering
- Move constructors
- The Rule of Four (and a half)
- Generic functions
- Type deduction rules
- The template build mechanism
- Generic classes
- Templates and polymorphism
- Meyers’ Universal references
- Variadic templates
- The algorithm concept
- Generic lambdas
- Creating threads
- Joining and detaching threads
- Accessing the underlying OS
- The C++ memory consistency model
- scope-locked idiom
- Condition variables
- Deferred synchronous calls
- Promises and futures
- Packaged tasks
- Rom-able classes
- operator ” ”