...

/

Programming with Constant Expressions

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
...