Constant expression initializer for static class member of type double
问题 In C++11 and C++14, why do I need constexpr in the following snippet: class Foo { static constexpr double X = 0.75; }; whereas this one produces a compiler error: class Foo { static const double X = 0.75; }; and (more surprisingly) this compiles without errors? class Foo { static const double X; }; const double Foo::X = 0.75; 回答1: In C++03 we were only allowed to provide an in class initializer for static member variables of const integral of enumeration types, in C++11 we could initialize a