A totally constexpr standard library

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

    Activity: Talk or presentationOral presentation

    Description

    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

    Keywords

    • C++
    • verification
    • programming
    • compilers