RTD Training & Development

C++14 for C++ Programmers

Call us on +44 (0)1225 66 72 72 or send us a message

C++14 for C++ Programmers

4 days hands-on £1,940+VAT

This course can be delivered over the web

Next scheduled date:
Monday October 1st, 2018 Enrol Now!

Covers the new features of C++ which were introduced in C++11 and C++14

Outline

Basics

  • Syntax enhancements
  • New types
  • New literal constructs
  • Variadic macros
  • Type-safe enumerations
  • 'auto' declarations
  • Trailing return types
  • Removed and deprecated features
  • Compiler support

Uniform Initialisation

  • Uniform initialisation syntax
  • Aggregate and non-aggregate initialisation
  • Adding support for initialiser lists

Range-Based 'for' Loops

  • Traversing containers
  • Using std::array
  • Range-based 'for' loops
  • Adding support for range-based traversal

Lambda Functions

  • Callable Entities
  • Lambda functions
  • Parameter and return types
  • Variable capture
  • Mutable lambdas

Rvalue References & Move Semantics

  • Copying temporary objects
  • Lvalues and rvalues
  • Rvalue references
  • Move constructors
  • Move assignments
  • Other move operations
  • Implicit operations
  • Standard library support for move semantics
  • Inheritance and delegation
  • Reference collapsing rules
  • Perfect forwarding

Template Enhancements

  • The 'using' keyword
  • Template instantiation
  • Static assertions
  • The type traits library
  • Conditional objects
  • Tuples
  • Variadic templates
  • Processing parameter packs

Class Enhancements

  • Default member initialisation
  • Inheriting and delegating constructors
  • Controlling and modifying default features
  • Override control

Multi-Threading

  • Starting threads
  • Thread handles
  • Thread operations
  • Passing arguments to threads
  • Retrieving results from threads
  • The threading memory model
  • Protecting shared data
  • Mutexes and locks
  • Thread synchronisation
  • Condition variables
  • Handling Exceptions
  • Futures and Promises
  • Using async()
  • Atomic operations

The Standard Library

  • Composition of the standard library
  • std::unique_ptr
  • Shared pointers and weak pointers
  • Unordered containers
  • Custom hashing
  • Forward lists
  • New algorithms
  • Regular expressions

Overview

The C++11 standard (formerly called C++0x) increased the power and efficiency of the language with a number of new language constructs and library enhancements. C++14 (formerly called C++1y) is a small extension over C++11, featuring mainly bug fixes, small improvements and generalisation of some C++11 features.

Of major interest are the new rvalue references, unordered containers and the multi-threading library, which enable a number of performance enhancements to be made.

This course covers all the major enhancements to the language and libraries in the C++11 and C++14 specifications and the majority of the other changes.

Participants acquire hands-on experience of the new language features by working through a wide selection of exercises.

Objectives

On successful completion of this course, participants will be able to:

  • Recognise the new features in C++11 & C++14
  • Understand the benefits of the new features
  • Write efficient C++14 code utilising the new features
  • Utilise the new multi-threading facilities
  • Utilise the new features of the Standard Library

Audience

This course is aimed at programmers, analysts, engineers and technical managers who are already proficient in C++ program development and who wish to take advantage of the new features in C++11 and C++14.

Prerequisites

This course assumes a working knowledge of C++98 up to the level covered in the C++ Programming course.