logo

ISO Course

course overview

Click to View dates & book now

Overview

Thought you knew C++? Think again! The C++11 standard is a huge leap forward in the language and STL. Largely inspired by Boost, the C++11 standard introduces support for lambdas, multithreading, vastly improved object construction mechanisms, and much more beside. This course takes a deep and detailed look at all the new features on offer in C++11, along with the incremental additional changes in C++14.

Topics:

  • Working with C++11 smart pointers
  • Functional programming in C++11
  • Defining and using lambda expressions
  • Using C++11 container classes
  • Implementing code applications in C++11
  • Using miscellaneous C++ language features
  • What's new in C++14

Audience

Designers and developers who are using, considering using, or wish to know about the expanded capabilities of C++11 and C++14 will find this course useful.

Prerequisites

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.

Outline

  • General Language Enhancements in C++11
  • auto variables
  • Using auto in template definitions
  • Using decltype
  • New return syntax
  • Range-based for loops
  • Making your own classes iterable
  • Generalised constant expressions
  • Strongly-typed enums
  • Null pointers
  • Explicit overrides
  • Static asserts
  • Additional Language Features in C++11
  • Lvalues, rvalues, and rrvalues
  • Movability
  • Reference binding rules
  • Support for movability in the STL
  • Improved initialization syntax
  • Inheriting and delegating constructors
  • Regular expressions
  • Date and time
  • Chrono
  • Explicit conversions
  • Variadic templates
  • Miscellaneous New Language Features in C++14
  • Function return type deduction
  • Alternate type deduction in declarations
  • Relaxed constexpr restrictions
  • Variable templates
  • Aggregate member initialization
  • Standard user-defined literals
  • Smart Pointers
  • Recap of smart pointer concepts
  • Shared pointers
  • Weak pointers
  • Unique pointers
  • Techniques and patterns
  • Introduction to Functional Programming
  • Overview of functional programming
  • Using std::bind to bind parameters
  • Using placeholders with for_each()
  • Passing by reference
  • Using std::function to represent free functions and member functions
  • Lambda Expressions
  • Overview of lambda expressions
  • Lambda syntax in C++11
  • Defining lambdas with arguments and a return value
  • Variable capture
  • Using lambdas with the STL
  • Performance considerations
  • Generic lambdas and lambda capture expressions in C++14
  • C++11 and C++14 Containers
  • Overview of new STL features
  • Using std::array
  • Using std::forward_list
  • Using unordered containers
  • Understanding hashing
  • Defining a custom hash function
  • Understanding buckets
  • In-place construction
  • Heterogeneous lookup in associative containers in C++14
  • C++11 and C++14 Multithreading
  • Creating simple threads using std::thread
  • Using lambda expressions with threading
  • Accessing the current thread
  • Using mutexes
  • Lock management and lock strategies
  • Atomic variables
  • Condition variables
  • Calling functions asynchronously
  • Working with future values
  • Shared mutexes and locking in C++14

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.