Consider the following code:
static constexpr int make_const(const int i){ return i; } void t1(const int i) { constexpr int ii = make_const(i); //
Because t1() is not a constexpr function, the parameter i is a runtime variable... which you can't pass to a constexpr function. Constexpr expects the parameter to be known at compile time.