2011-08-03 154 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_也是正确的,更通用。) –