Find Related products on Amazon

Shop on Amazon

C++26: more constexpr in the core language

Published on: 2025-08-12 20:13:03

Since constexpr was added to the language in C++11, its scope has been gradually expanded. In the beginning, we couldn’t even use if , else or loops, which were changed in C++14. C++17 added support for constexpr lambdas. C++20 added the ability to use allocation and use std::vector and std::string in constant expressions. In this article, let’s see how constexpr evolves with C++26. To be more punctual, let’s see what language features become more constexpr -friendly. We’ll discuss library changes in a separate article, as well as constexpr exceptions, which need both language and library changes. P2738R1: constexpr cast from void* Thanks to the acceptance of P2738R1, starting from C++26, one can cast from void* to a pointer of type T in constant expressions, if the type of the object at that adress is exactly the type of T . Note that conversions to interconvertible - including pointers to base classes - or not related types are not permitted. The motivation behind this change is ... Read full article.