常量表达的问题

时间:2012-06-12 16:54:22

标签: c++

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

    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

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

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

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