The IDEAS Productivity Project is hosting an upcoming webinar in its HPC Best Practices Series, entitled “Modernizing C++ Interfaces with Concepts, Constraints and std::mdspan”.
Over the last few years C++ has evolved considerably by adding features that allow for more robust, intuitive and maintainable interfaces, most notably through the addition of Concepts and Constraints in C++20, and std::mdspan in C++23. These features can in particular benefit scientific computing, where libraries with complex overload sets or large numbers of class specializations are common. In this presentation we will introduce Concepts and Constraints and discuss their benefits as well as their pitfalls. In particular, we will illustrate how these new capabilities interact with std::mdspan to enable the design of public facing interfaces, which enable interoperability between libraries for multi-dimensional arrays, and provide a much larger degree of safety and maintainability than typical C-like interfaces.
This talk will be appropriate for attendees who do not know anything about Concepts, Constraints or std::mdspan; however, a general C++ familiarity is highly recommended.
Presenter
Christian Trott (Sandia National Laboratories)
Registration
There is no cost to attend, but registration is required.
Please visit the Modernizing C++ Interfacaes Webinar Event Page to register.