【发布时间】:2020-03-20 16:04:20
【问题描述】:
我有 unordered_map,键值对分别为 string 和 aClass;其中 aClass 不能移动(它有一个互斥锁)。我也不希望它被复制构造;我认为复制构造一个包含互斥锁的类是不明智的。 为了延迟项目的构建直到它插入到地图中,我尝试使用 emplace 将它插入到地图中,因此,第二个参数必须为空:
aList.emplace("aString");
但是,上一行不起作用。 任何想法如何使用默认构造函数进行安置? 我也试过:
aList.emplace("aString", void);
aList.emplace("aString", {});
aList.emplace(std::piecewise_construct,"aString");
谢谢,
【问题讨论】:
标签: c++ c++14 unordered-map emplace