Advanced C++ Programming: C++11, C++03 and Boost
(CPPBOOST, Live Instructor-Led Training, 4 days)


Description

This SETC certified course pushes the boundaries of C++ development under the C++11 and C++03 standards. If you are an advanced C++ developer who needs to know how to write modern C++ code that makes full use of data structures, memory management, multithreaded programming, locales, templates and more, this is the course that you need. The entire course is dedicated to advanced programming techniques that allow organizations to create powerful and flexible C++ code in supprt of their enterprise needs. The course concludes with a comprehensive study of a specific library of your choosing. Whether you want to learn to develop using Boost, STL, or any other library, this is the course that will elevate you to the next level in the C++ development community.

Dates and Pricing


Jan 23 to Jan 26, 2018$3,000/person Feb 20 to Feb 23, 2018$3,000/person Mar 20 to Mar 23, 2018$3,000/person

Outline

Getting started with C++11
The C++03 and C++11 standard
Memory Architecture
Using the auto Keyword
Alternative C++ Function Syntax
Casting Operators
The new range-based for loop
Lambda Functions and Expressions
Boost.Lambda - Boost.Phoenix
Static assertions
Using const and constexppr
Data Structures
Understanding trivial and standard-layout Plain Old Data (POD)
Weak and strongly typed enumeration
Unrestricted unions
Tuples
Hashmap and Sets
Initializer List
Understanding and using type traits in C++11 and Boost
Memory Management
Memory architecture
Using unique_ptr, shared_ptr and weak_ptr
Using wrapper reference
The sizeof, alignas and alignof operators
Using set_new_handler()
Difference between NULL and nullptr
Implementing garbage collection
Multithreaded Programming
Multithreaded memory architecture
Threading facilities
Thread-local storage
Understanding atomic operations
Using std::mutex, std::lock_guard and std::unique_lock
Using std::future, std::packaged_task and std::async
Strings
Ascii, UTF and wide strings
User defined literals
Regular expressions with C++11 and Boost.Regex
Boost.Xpressive
LL parsing using Boost.Spirit
Locales
Understanding locales
Locale facets
Working with numbers
Formatting date, time and currency
Using messages and message catalogues
Classes
Changes in Constructor from C++03 to C++11
Using Peer Constructors
Inheriting Constructors
Defaulted Constructors and Members
Deleted Class Members
Explicit Function Override
Creating Final Classes
Explicit Conversion Operators
Using Templates
Variadic Template
Using extern Templates
Boost Library
What is Boost
Boost Libraries that are Part of C++11
Using Boost TR1
Boost.Utility
Containers such as Array, Circular Buffer and Dynamic Bitset
Better Temporal Management with Timer, Date-Time and Chrono
Using Thread and Thread Pools
Better IO: Filesystem, Serialization and ASIO
Boost.Accumulators
Boost.Bind and Boost.Function
Boost.Iterator and Boost.Range/Range_ex
Boost.Program_options
Interprocess signaling using Boost.Signal and Boost.Signal2
Unit Testing with Boost.Tests