如何定义静态const成员?

Did*_*set 7 c++ const g++ static-members

我的Test班级有const static一个子类型的成员.我通常将此const static成员定义如下.

class Test 
{
public:
    class Dummy {};

private:
    static Dummy const dummy;

};

Test::Dummy const Test::dummy;             // ERROR HERE

int main() 
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用gcc-4.6编译此源时,它不会出错并正确编译.

使用gcc-4.4编译同一个源时,会出现以下错误: error: uninitialized const ‘Test::dummy’ 在标记的行上.

  • 还有另一种方法来定义这个静态const成员变量吗?
  • 这是gcc-4.4的限制吗?
  • 有解决方法吗?

Ker*_* SB 6

说:

Test::Dummy const Test::dummy = { };
Run Code Online (Sandbox Code Playgroud)