2009-12-08 106 views
3

使用該成員初始化...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

回答

12

我認爲你是初始化對象與{...}代替(...)

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

相關問題