C++ – Metaprogramming and High-Performance Applications (CPP5)
Programming, C, C++
Since C++20, concepts simplify templates and type parameters. This enables replacing virtual methods and heavy OOP with designs focused on performance and predictable latency, important for embedded and real-time systems.
C++26 brings compile-time reflection to express metaprogramming more succinctly, while current standards already provide many library tools to adapt. The course covers C++20/23/26 with examples using constexpr and templates.
THIS TRAINING COURSE WILL HELP YOU:
- Identify compile-time optimization opportunities in C++
- Learn metaprogramming features in recent C++ standards
- Practice working with templates in a variety of patterns
- Understand how C++ code executes at compile time
WHO SHOULD ATTEND?
- Experienced C++ developers who want to update their skills
- C++ developers wanting to learn templates, concepts and constexpr
- Practitioners interested in industrial languages and their limits
COURSE LOCATION AND AVAILABLE DATES
Private training
This course is not scheduled as a public course.
It is delivered exclusively as customised training. The content, duration, date, and delivery format are tailored to the customer's requirements and can also be provided in English.
Request customised training
Course content:
Hide details
-
Metaprogramming in C++20 and C++23
-
Creating high-performance, generic code
-
Enabling maximum compiler-driven optimization
-
Clearer and more maintainable designs than before
-
Programming with templates
-
Parametric data structures
-
Generic algorithms and helper types
-
Static type checking and safety
-
Template specialization
-
Special handling for particular cases
-
Specialization via tagging and policy classes
-
Metafunctions and compile-time computations
-
Constraining type parameters
-
Documenting requirements on types
-
SFINAE and programming with type traits
-
Explicit constraints using concepts
-
Easier work with templates
-
Shorter function template syntaxes
-
Deducing this and perfect forwarding
-
CTAD and omitting explicit type parameters
-
Combining OOP and templates
-
Using inheritance without virtual methods
-
Augmenting functionality with CRTP
-
Type erasure with templates and inheritance
-
Variadic templates
-
Support for a variable number of parameters
-
Expressions based on parameter packs
-
Techniques using multiple inheritance patterns
-
Header-only libraries
-
Modern role of the inline keyword
-
ODR (one-definition rule) and how it behaves
-
Interaction with templates and class code
-
Metaprogramming beyond templates
-
Compile-time evaluation patterns
-
Keywords constexpr and consteval
-
if constexpr, if consteval and static_assert()
-
Combining constexpr and templates
-
Type-based branching at compile time
-
Simplifying certain template patterns
-
Constexpr function and variable templates
-
Template library design
-
Methods vs free (non-member) functions
-
Argument-dependent lookup (ADL)
-
Customization points for extensibility
-
Implementing generic templates
-
Specialized smart pointer implementations
-
Custom container types
-
Data structures without dynamic allocation
-
Bonus: Reflection in C++26
-
Type and variable introspection facilities
-
Embedding metadata into code
-
Practical applications of reflection
-
Prerequisites:
-
Good knowledge of programming in C++.
-
Recommended previous course:
-
C++ – Practical Programming for Advanced Developers (CPP2)
-
Recommended follow-up course:
-
C++ – Design Patterns and Idioms (CPP3)
-
Schedule:
-
3 days (9:00-17:00)
Training and learning environment
What does the environment for in-person IT courses look like?We hold training courses in our own classrooms equipped with modern computer equipment for each participant and a large projection screen. Each workstation is fitted with a powerful computer for seamless practical exercises, and the environment supports a calm, friendly atmosphere during training.
Do I need to bring my own laptop to the classroom IT course?Our training rooms are fully equipped, so you do not need to bring your own laptop. A modern computer with all necessary hardware and software is ready for you at your workstation.
Will you receive an official certificate after completing an IT course?Yes, upon successful completion of the training course, you will receive an official ICT Pro certificate confirming your participation and acquired technical skills. You can use it to verify your qualifications or add it to your professional profile.
Where can you find our training center in Brno?The premises of the ICT Pro training center are located on the 1st floor of the COMGUARD building at Sochorova 38 in Brno. Positioned on the border of Žabovřesky and Komín, the location is easily accessible by both car and public transport.
Where can you find our training center in Prague?The premises of the ICT Pro training center are located on the 1st floor of the Opatov Park building at Líbalova 1, Prague 11 – Chodov. The location provides a comfortable environment for your education with convenient access.
What facilities and refreshments are available to you during training breaks?Our training centers feature a fully equipped kitchenette for a comfortable break during your courses. The facilities include a coffee machine, microwave, kettle, and a wide selection of drinks and snacks.
What beverage refreshments are available during your course?A beverage station with a coffee machine, teas, syrups, and water is at your disposal throughout the entire training session. You can enjoy a coffee or another drink of your choice anytime during breaks.
What light refreshments are provided for you during the courses?During course breaks, participants can enjoy light sweet snacks, pastries, and fruit syrups to mix their own drinks. Fresh water dispenser and plates are also available for your convenience.
Should I bring my own snacks to ICT Pro training?There is no need to. A wide selection of savory snacks, sweet biscuits, and snack bars is available for you during breaks. Boost your energy for all-day focus right inside the training center premises.
Can you spend training breaks in the fresh air?Yes, an outdoor terrace is available at our training center. During breaks between learning sessions, you can relax in the fresh air in a pleasant green environment.
Where can you relax during course breaks?Our training center features a spacious outdoor terrace with seating options. During breaks between learning sessions, you can step outside to relax and recharge in the fresh air.