Advanced Modern C++

Code: adv-modern
Category: C & C++
Format: 40% wykład / 60% workshop
Duration: 3-6days
Target audience: developers
Enrollment: Groups, companies
Venue: Client's office.

Training Program

The content of our program can be customised during pre-training analysis.

  1. C++ Basics for Experts
    1. Advanced approach to C++ basic concepts (identifiers, types and their properties, objects, scope, lifetime, and more)
    2. Class special member functions undercover
    3. Object construction and initialization voodoo
  2. Coding with performance in mind
    1. Value categories
    2. Copy elision
    3. Move semantics
    4. Ref-qualifiers
    5. noexcept
    6. constexpr
    7. Source code vs hardware - introduction
  3. Utilities that every C++ developer should know and use
    1. Smart pointers
    2. Lambda expression
    3. Algorithms and their specializations
    4. std::string_view
    5. std::optional
    6. std::tuple
    7. std::variant
  4. Templates demystified
    1. Class, function, variable, and alias templates
    2. Parameters and arguments
    3. Explicit and partial specialization
    4. Explicit and implicit instantiation
    5. Template argument deduction
    6. Variadic templates
    7. Fold-expressions
    8. Dependent names
    9. SFINAE
  5. Tools mandatory in modern C++ developer’s workshop
    1. cmake
    2. clang toolset
    3. gtest/gmock
    4. Code Coverage
    5. Google benchmark
    6. Compiler Explorer
  6. Design patterns do not end on GoF
    1. Non-Copyable
    2. RAII
    3. Copy-and-swap
    4. Smart Pointer
    5. Type Traits
    6. Tag dispatch
    7. Policy-based design
    8. EBO
    9. Type Erasure
    10. Copy-on-write
    11. CRTP
    12. Singleton
    13. SOO
  7. C++ is not only about OOD
    1. Inheritance vs polymorphism
    2. Pitfalls and how to fight with them
    3. Value Semantics
    4. Concept-based Polymorphism
  8. C++ containers for demanding developers
    1. Finding the right tool for the job (functionality, memory layout, performance/latency)
    2. Sequence containers
    3. Associative containers
    4. Hash tables
    5. Not only from C++ standard library
  9. Writing stable and secure code
    1. Typical problems of legacy code
    2. Pitfalls of buggy coding standards
    3. Class construction and destruction
    4. Magic numbers everywhere
    5. Replacing pointers with C++ constructs
    6. Value objects
    7. Error handling

Download PDF


Meet the experts who will conduct your training.

Contact us for a free consultation.

Firstname and lastname:

If you prefer direct contact then you can always call.

Iwona Sobótka

Training coordinator

I agree to the processing of my personal data in accordance with the Law on the Protection of Personal Data in connection with sending a request via the contact form.

Providing the data is voluntary but necessary to process the query. I have been informed that I have the right to access my data, the possibility of correcting them, demanding stopping their processing.

The administrator of personal data is Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin, Poland.

The information clausule