Sunteți pe pagina 1din 4

UpgradetoC++for

ExistingC++
Programmers
3 Day Course

Upgrade to C++ for Existing C++ Programmers


3 Day Course

Course Description
To introduce experienced C++ programmers to the new features available in C++11 through
practical examples and to explain the principles behind them.

Prerequisites
The course is for experienced C++ programmers who will already be developing applications in
C++.

Course Structure/Content Outline


Module 1: 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

Module 2: 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

Module 3: Variadic Templates and Lambdas


[Enter Date]

[Enter Version]

Page 2

Upgrade to C++ for Existing C++ Programmers


3 Day Course

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

Module 4: 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

Module 5: Basic Concurrency

[Enter Date]

[Enter Version]

Page 3

Upgrade to C++ for Existing C++ Programmers


3 Day Course

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

Module 7: 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

[Enter Date]

[Enter Version]

Page 4

S-ar putea să vă placă și