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
的任何信息关于这个警告?
编辑:警告走了我删除被分配到在构造函数中的值(无法通过成员初始化完成)的成员之一,并使其局部变量代替类成员之后。仍然想知道那些警告的含义。
答
我认为你是初始化对象与{...}
代替(...)
:
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
不GameState :: State对象有一个拷贝构造函数?或者,也许m_Level不是与GameState :: State完全相同的类型。 – 2009-12-08 18:19:02