Wednesday 

Room 4 

15:00 - 16:00 

(UTC+02

Talk (60 min)

Unleashing the Power of C++ Templates with `mp-units`: Lessons learned and a new library design

This lecture presents how Modern C++ enables exciting features and attractive new design possibilities. The presented library pushes the boundaries of Modern C++ interfaces. Mateusz will present novel ways of using C++ templates benefiting from C++20 and C++23 features. mp-units is a Modern C++ library that provides compile-time dimensional analysis and unit/quantity manipulation. It heavily uses C++20 features like concepts and values of class types used as non-type template parameters (NTTPs). Also, it introduced a new powerful technique called the Downcasting Facility. During the talk, the library's author will describe the significant challenges with the initial design. He will explain the issues with the Downcasting Facility and why user-defined literals (UDLs) are not a good choice for creating quantities, and what the alternatives are. Mateusz will also describe additional requirements that couldn't be addressed with the previous framework and present how the new design addresses them. In the end, we will discuss potential C++ language features that could be helpful to improve the design of this and similar libraries.

Mateusz Pusz

A software architect, principal engineer, and security champion with more than 15 years of experience in designing, writing, and maintaining C++ code for fun and living. A trainer with 10 years of C++ teaching experience, consultant, conference speaker, and evangelist. His main areas of interest and expertise are Modern C++, code performance, low latency, safety, and maintainability.

Mateusz worked at Intel for 13 years, and now he is a Principal Software Engineer and the head of the C++ Competency Center at EPAM Systems. He is also a founder of Train IT that provides dedicated C++ trainings and consultant services to corporations around the world.

Mateusz is a contributor and an active voting member of the ISO C++ Committee (WG21) where, together with the best C++ experts in the world, he shapes the future of the C++ language. He is also a co-chair of WG21 Study Group 14 (SG14) responsible for driving performance and low latency subjects in the Committee. Recently also joined MISRA to help make self-driving cars safer.