是否可以用初始化列表初始化boost::unordered_map
? -Weffc++
需要它。Boost :: unordered_map初始化列表?
我不能使用一种方法来初始化它,因为我只在构造函数内部进行一些处理后才填充地图。我可以在方法中创建一个空映射并将其返回,但对我来说这听起来不是一个好主意。
我也可以使用一个指针,并将它初始化为NULL。我宁愿不要创建一个空方法的等价物。
是否可以用初始化列表初始化boost::unordered_map
? -Weffc++
需要它。Boost :: unordered_map初始化列表?
我不能使用一种方法来初始化它,因为我只在构造函数内部进行一些处理后才填充地图。我可以在方法中创建一个空映射并将其返回,但对我来说这听起来不是一个好主意。
我也可以使用一个指针,并将它初始化为NULL。我宁愿不要创建一个空方法的等价物。
只是默认构造在初始化列表中的成员变量:
struct S {
boost::unordered_map<int, int> m;
S() : m() { }
};
这是足以让-Weffc++
闭嘴。
这是值初始化,而不是默认值 - 初始化(§8.5/ 7): - ] – ildjarn
对,谢谢。(我的意思是_default construct_,但是,_value initialization_也是正确的,更通用。) –
这里的初始化列表是什么意思?为什么不直接调用其默认构造函数? – bdonlan
因为这个原因,我不使用'WeffC++'。 – GManNickG
我不使用'-WeffC++',因为它看起来像是一种“礼貌”的方式来说“F *** C++',当然我不想说。” –