GCC编译器警告:扩展初始化列表仅适用的C++ 0x

问题描述:

使用该成员初始化...GCC编译器警告:扩展初始化列表仅适用的C++ 0x

StatsScreen::StatsScreen(GameState::State level) 
    : m_Level(level) { 
    ...// 
} 

我得到以下警告...

extended initializer lists only available with -std=c++0x or -std=gnu++0x

的任何信息关于这个警告?

编辑:警告走了我删除被分配到在构造函数中的值(无法通过成员初始化完成)的成员之一,并使其局部变量代替类成员之后。仍然想知道那些警告的含义。

+0

不GameState :: State对象有一个拷贝构造函数?或者,也许m_Level不是与GameState :: State完全相同的类型。 – 2009-12-08 18:19:02

我认为你是初始化对象与{...}代替(...)

StatsScreen ss{...}; // only available in C++0x 
StatsScreen ss(...); // OK in C++98 

要编译代码的C++ 0x代码,只需编译时添加以下标志:

g++ test.cpp -std=c++0x 
+0

在构造函数中的成员之一,是初始化这种方式(但它不是在成员初始化列表),这是一个我去掉,这样才有意义。 – Anonymous 2009-12-08 00:42:03