我在编译代码时遇到了一些问题。我有这个特殊的代码
typedef double Type;
static const Type MAX_VALUE = __DBL_MAX__;
static const Type MIN_VALUE = -__DBL_MAX__;
现在我尝试编译它。它显示以下错误
error: a call to a constructor cannot appear in a constant-expression
我将定义const更改为constexpr。但它显示以下错误
error: ‘constexpr’ does not name a type
note: C++0x ‘constexpr’ only available with -std=c++0x or -std=gnu++0x
如何解决此问题?
答案 0 :(得分:1)
我的水晶球告诉我这些线都在一个类定义中。这是你遗漏的一条非常重要的信息。
在C ++ 11之前,只能在类体内初始化整数和枚举的静态成员。其他的,包括浮点数,必须在外面定义。