Boost::unordered_map 与初始化列表?
Posted
技术标签:
【中文标题】Boost::unordered_map 与初始化列表?【英文标题】:Boost::unordered_map with initialization list? 【发布时间】:2011-08-03 00:50:30 【问题描述】:是否可以使用初始化列表初始化boost::unordered_map
? -Weffc++
需要它。
我不能使用方法来初始化它,因为我只是在构造函数内部进行了一些处理后才填充地图。我可以在方法中创建一个空映射并将其返回,但这对我来说听起来不是一个好主意。
我也可以使用指针并将其初始化为 NULL。我宁愿不这样做,尽管它比创建一个空方法的等价物更好。
【问题讨论】:
这里的初始化列表是什么意思?为什么不直接显式调用其默认构造函数? 因为这个原因我不使用Weffc++
。
我不使用-Weffc++
,因为它看起来像是一种“礼貌”的方式来表达“F*** C++”,我当然不想这么说。跨度>
【参考方案1】:
只需默认-构造初始化列表中的成员变量:
struct S
boost::unordered_map<int, int> m;
S() : m()
;
这足以让-Weffc++
闭嘴。
【讨论】:
这是值初始化,而不是默认初始化(第 8.5/7 节)。 :-] 好的,谢谢。 (我的真正意思是默认构造,但是是的,值初始化也是正确且更通用的。)以上是关于Boost::unordered_map 与初始化列表?的主要内容,如果未能解决你的问题,请参考以下文章
boost::boost::unordered_map 的序列化
boost::unordered_map 中以结构为键的 boost 变体
指定构造 boost::unordered_map 时的最小桶数
如何使用 boost std::vector of boost::unordered_map 进行序列化/反序列化