Programming with Constant Expressions
Learn compile-time optimization with the constexpr and consteval functions.
Using the constexpr
keyword for compile-time evaluation
An expression prefixed with the constexpr keyword tells the compiler that the expression should be evaluated at compile time:
Press + to interact
constexpr auto v = 43 + 12; // Constant expression
The constexpr
keyword can also be used with functions. In that case, it tells the compiler that a certain function is intended to be evaluated at compile time if all the conditions allowing for compile-time evaluation are fulfilled. Otherwise, it will execute at runtime, like a regular function.
A constexpr
function has a few restrictions; it is not allowed to do the following:
- Handle local static variables
- Handle
thread_local
variables - Call any function, which, in itself, is