2011-08-03 194 views
1

是否可以用初始化列表初始化boost::unordered_map-Weffc++需要它。Boost :: unordered_map初始化列表?

我不能使用一種方法來初始化它,因爲我只在構造函數內部進行一些處理後才填充地圖。我可以在方法中創建一個空映射並將其返回,但對我來說這聽起來不是一個好主意。

我也可以使用一個指針,並將它初始化爲NULL。我寧願不要創建一個空方法的等價物。

+0

這裏的初始化列表是什麼意思?爲什麼不直接調用其默認構造函數? – bdonlan

+0

因爲這個原因,我不使用'WeffC++'。 – GManNickG

+2

我不使用'-WeffC++',因爲它看起來像是一種「禮貌」的方式來說「F *** C++',當然我不想說。」 –

回答

4

只是默認構造在初始化列表中的成員變量:

struct S { 
    boost::unordered_map<int, int> m; 

    S() : m() { } 
}; 

這是足以讓-Weffc++閉嘴。

+0

這是值初始化,而不是默認值 - 初始化(§8.5/ 7): - ] – ildjarn

+0

對,謝謝。(我的意思是_default construct_,但是,_value initialization_也是正確的,更通用。) –