0

我在编译代码时遇到了一些问题。我有这个特定的代码

    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

我该如何解决这个问题?

4

1 回答 1

1

我的水晶球告诉我这些行在类定义中。这是您遗漏的一条非常重要的信息。

在 C++11 之前,只能在类体内初始化整数和枚举静态成员。其他的,包括浮点数,必须在外面定义。

于 2012-06-12T17:08:30.350 回答