Upgrade to C++11 for existing C++ Programmers

Course

Online

Price on request

Description

  • Type

    Course

  • Methodology

    Online

A three-day practical course covering all of the new C++11 language features such as lambdas, variadic templates and move semantics as well as new library features such as regular expressions and concurrency.

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • IT
  • C++

Course programme

Object creation and usage

  • auto and decltype
  • uniform initialisation
  • in-class member initialisation
  • controlling generated members
  • delegating and inheriting constructors
  • unions
  • initialiser lists and containers
  • trivial types and standard layout
  • user-defined literals
  • strong enums
  • explicit conversions
  • range-based for loops

Move semantics

  • lvalues, rvalues and temporaries
  • lvalue and rvalue references
  • move constructor and assignment
  • move versus copy
  • std::move
  • move-only types - std::unique_ptr
  • move-enabled containers and the STL
  • deduced "universal" references
  • reference collapsing rules
  • perfect forwarding

Variadic templates and lambdas

  • recursive variadic templates
  • variadic templates and forwarding
  • variadic templates as object generators
  • default function template arguments
  • factory functions
  • std::function and std::bind
  • std::shared_ptr and std::make_shared
  • emplace functions
  • lambdas
  • variable capture in lambdas
  • mutable lambdas
  • lambdas and the STL

Library and language additions

  • nullptr and std::nullptr_t
  • raw strings and UTF strings
  • additional character types
  • aliases and typedefs
  • namespace aliases
  • memory alignment
  • compile-time traits
  • std::enable_if
  • constexpr
  • noexcept
  • unordered containers
  • hash functions
  • std::forward_list
  • regular expressions
  • numerics
  • std::chrono and std::ratio
  • error codes
  • final and override
  • sizeof
  • extended friends
  • attributes

Basic concurrency

  • memory model
  • visibility, atomicity and ordering
  • volatile
  • std::future and std::promise
  • std::shared_future
  • background processing and std::async
  • std::atomic and simple types
  • compare and exchange (CAS)
  • memory ordering and atomics
  • std::thread, join and detach
  • std::ref and std::cref
  • std::thread and move semantics
  • std::packaged_task
  • exception safety and threads
  • threads and constexpr

More advanced concurrency

  • mutexes, recursive and timed mutexes
  • std::lock_guard and RAII
  • std::unique_lock and std::lock
  • try_lock
  • moving and adopting locks
  • condition variables and lambdas
  • user-defined locking
  • thread_local
  • std::call_once
  • memory fences
  • std::quick_exit and std::at_quick_exit
  • std::this_thread, yield and sleeping

Upgrade to C++11 for existing C++ Programmers

Price on request