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.