Developing in C++ Level 2


Training overview

This training addresses in a concrete way the advances of versions 11/14/17 of C++: lambdas, variadic templates, threads, movement mechanism, … These new features allow C++ to offer mechanisms similar to those of its competitors such as Java or C#, and significantly improve the product codes.


-Use syntactic improvements introduced in C++11
– Write better C++ classes based on explicit declarations
– Understand what’s new in exception handling
– Master the concepts of movement and smart pointer
– Leverage the standardized multi-threaded programming API
– Use variadic templates
– Developing lambda expressions

Target audience

Developer, designer or MOE project manager knowing C++.


    Language improvements
    This module presents all the improvements intended to make C++ code more readable and maintainable.
    – Advances in C++ versions 11, 14, 17 and 20
    – Type improvements: enum, unions, POD
    – The nullptr pointer
    – The for loop on interval
    – Type inference at compile time with auto
    Lab: first practice with auto and the new for loop

    What’s New in C++ Classes
    This module presents all the improvements intended to make C++ classes more readable.
    – Member data initialization
    – The delegation of manufacturers
    – The redefinition (override) and final declaration
    – Explicit type conversion mechanisms
    Practical work: creation of a class tree structure

    This error handling mechanism is undergoing major changes.
    – Recommendations for use of exceptions
    – The pointer to current exception
    – The throw and noexcept clauses
    Lab: creating code using the noexcept clause

    The moving mechanism
    Presentation of the mechanism for optimizing memory management and performance.
    – Introduction of the concept of rvalue
    – The constructor by displacement and the assignment by displacement
    – The normal form of a class
    – The impact of the principle of “move” at the level of the STL
    – The proper use of the placement mechanism (emplace_back)
    Practical work: creation of a class whose instances are “move constructible” and “move assignable”

    Overview of improvements.
    – Variadic templates
    – Partial specialization of templates
    – Local and anonymous template arguments
    Practical work: use of variadic templates

    Lambda expressions
    Functional programming in C++.
    – The concept of functional programming
    – The declaration and the call of a lambda-expression
    – Capturing the surrounding context
    – Lambda-expression templates
    Lab: programming different lambda-expressions with parameters and capture

    Smart pointers
    Mechanisms for automatic management of allocations/releases.
    – The shared_ptr type and its operation (control zone)
    – Weak references (weak_ptr)
    – The use of smart pointers in the STL
    Lab: using shared_ptr

    Normalized Threads
    Multi-threaded programming in C++.
    – The operation and states of a thread
    – Techniques for launching a thread (callable, async, future, promise, …)
    – Critical sections (mutex) and thread synchronization (condition_variable)
    – Memory management (volatile and atomic types)
    Practical work: parallelization of an algorithm and performance analysis, creation of a producer-consumer (Hoare monitor).

What's More

Digital Finance

Please wait while flipbook is loading. For more related info, FAQs and issues please refer to DearFlip WordPress Flipbook Plugin Help documentation.

Means of contact

  1. Telephone

    +216 96 803 221

  2. Email

  3. Whatsapp


Switch The Language

    Upgradetek Engineering is a strategy and management consulting firm, specialized in the transformation of financial institutions. As one of the leaders of this sector in Tunisia, we have been supporting our banking and financial clients for more than 14 years in the evolution of their business model, in defining and implementing new target business models and improving their performance.

    23, Avenue of Naplouse 1001 Tunis, Tunisia
    +216 71 33 93 95