Programming with constant expressions
constexpr auto v = 43 + 12; // Constant expression
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.
constexpr function has a few restrictions; it is not allowed to do the following:
- Handle local static variables
- Call any function, which, in itself, is not a
constexpr keyword, writing a compile-time evaluated function is as easy as writing a regular function since its parameters are regular parameters instead of template parameters.
Consider the following