Many an `any`

Many an any

09:30 - 11:00 Saturday 9th April 2022 BST



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 C11, 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.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.