A totally constexpr standard library

  • Keir, P. (Speaker)
  • Andrew Gozillon (Speaker)
  • Joel Falcou (Speaker)
  • Jules Pénuchot (Speaker)

Activity: Talk or presentationOral presentation


With C++20 constexpr compiler support for dynamic memory allocation, and library support for std::vector/std::string now widely available (MSVC 19.29 (VS16.11), GCC 12.1's standard library (libstdc++), and accessible via Clang), a future C++ standard library can be foreseen, where every function and member function supports constant evaluation.

In this talk we introduce the C'est library project, which adds constexpr support to a range of familiar class templates modelled after the C++ standard library. We highlight an update to the C'est architecture, which aims to simplify the integration of C'est within projects targeting constexpr support. Example projects are also presented including a compile-time compiler (poacher); and Metamath proof database verifier; as well as some more recent developments.

Such parity between compile-time and run-time programming offers advantages in terms of increased programmer productivity; nevertheless, compilation times can increase by a significant factor. To measure progress, we also present CTBench: a set of tools to facilitate comprehensive compile-time benchmarking; based on Clang's time-trace feature.
Period19 Nov 2022
Event titleMeeting C++ 2022
Event typeConference
LocationBerlin, Germany, BerlinShow on map
Degree of RecognitionInternational


  • C++
  • verification
  • programming
  • compilers