Initializing a constexpr with a const, — int vs float
I'm wondering why the integer ii is initiallized at compile time, but not the float ff here: int main() { const int i = 1; constexpr int ii = i; const float f = 1.0; constexpr float ff = f; } This is what happens when I try to compile: > g++ -std=c++11 test.cc test.cc: In function ‘int main()’: test.cc:6:24: error: the value of ‘f’ is not usable in a constant expression constexpr float ff = f; ^ test.cc:5:15: note: ‘f’ was not declared ‘constexpr’ const float f = 1.0; Constant variables of integral types with constant initializers are integral constant expressions (de facto implicitely