Connected features
constexpr relaxations (C++23)C++23successive rounds of constant-evaluation relaxationLibrary constexpr-ification (C++26)C++26constexpr placement new and exceptions unlock constexpr containers, shared_ptr, formatReflectionC++26reflection relies on consteval-only values and constant-evaluation error handlingstd::execution (senders/receivers)C++26sender diagnostics are delivered through constexpr exceptions (P3557R3)
Papers
6 · Varna 2023 → Brno 2026Allows static_cast from void* back to the original type during constant evaluation, enabling constexpr type erasure.
Allows placement new during constant evaluation.
Allows exceptions to be thrown and caught during constant evaluation; an escaping exception makes the expression non-constant.
Permits virtual base classes in constant evaluation (construction, dynamic_cast, typeid).
Clarifies exactly when constant evaluation of an expression happens (DR).
Introduces consteval-only values: values of types like std::meta::info that may exist only during constant evaluation (DR).