Modern C++ Idioms EN

Дата: Перенесено на июль 2020

Место: Москва, Ленинградское ш., 39А, стр. 2, офис компании Kaspersky

Назад к мастер-классам
Mateusz Pusz — EPAM Systems

Mateusz Pusz
EPAM Systems


Software architect, chief engineer, and security champion with more than 14 years of experience in designing, writing and maintaining C++ code for fun and living. C++ consultant, trainer, and evangelist focused on Modern C++. His main areas of interest and expertise are code performance, low latency, stability, and security.

Mateusz worked at Intel for 13 years and now he leads C++ Community at EPAM Systems. He is also a founder of Train IT that provides C++ trainings to corporations. Mateusz is an active voting member of the ISO C++ Committee (WG21) where, together with the best C++ experts in the world, he shapes the next official version of the C++ language. He is also a member of WG21 Study Group 14 (SG14) responsible for driving performance and low latency subjects in the Committee. In 2013 Mateusz won “Bench Games 2013” – worldwide competition in the C++ language knowledge.

Описание мастер-класса

C++ is no longer C with classes and it never was only an Object Oriented language. C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance. Such usage requires a good knowledge of C++ templates and Modern C++ Idioms which are much different from commonly known design patterns popularized by GoF book and invented to handle common use cases in pure OO languages like Java or C#.

Experience required: In order to be able to follow the workshop, you should be current with C++ and have some recent experience with writing simple C++ templates. C++11/14 knowledge is suggested but not mandatory.

Environment: A laptop with a relatively new C++ compiler. It is recommended to have the latest version of one of the compilers (Visual Studio, gcc or clang)

This is a full-day workshop

Depending of the amount of time Mateusz Pusz will get for the workshop the list of idioms can cover:

  • Non-Copyable
  • RAII
  • Copy-and-swap
  • Smart Pointer
  • type_identity
  • Type Traits
  • Tag dispatch
  • Policy-based design
  • EBO
  • Type Erasure
  • SOO
  • Copy-on-write
  • CRTP
  • Barton-Nackman Trick
  • Singleton
  • Customization point object (Niebloid)
  • Mixin