Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

Many an `any`

09:30 - 11:00 Saturday 9th April 2022 BST
Intermediate
Advanced
Add to Google Calendar

`std::any` is one of the simpler types in the standard library, providing type erasure for any copyable type. This presentation would explore the various choices of implementation strategy, and what impact such choices may make on the future evolution of such a type. What kind of ABI restrictions get baked in that might affect future extensions, such as embracing `constexpr`? What is
the performance impact, if any is observable, of the different choices? How is compile time, and the amount of code that must be included, affected by such decisions? Do C++20 modules make a difference?

`std::any` is simple enough that several complete implementations can be presented within the 90 minute session, along with several micro-benchmark results.

Alisdair Meredith

Alisdair Meredith is a software developer at BloombergLP in New York, and a previous chair of the C++ Standard Committee Library Working Group. He has been an active member of the C++ committee for almost two decades, and by a lucky co-incidence his first meeting was the kick-off meeting for the project that would become C++11, and also fixed the contents of the original library TR. He is currently working on the BDE project, BloombergLP's open source libraries that offer a foundation for C++ development, including a standard library implementation supporting the polymorphic allocator model that was ultimately adopted by C++17.