【发布时间】:2020-12-27 03:09:44
【问题描述】:
有没有办法使用初始化列表构造函数来构造具有不可复制值类型的 std::map?
看下面的例子
#include <memory>
#include <map>
int main()
{
std::map<int, int*> int_ptr{{1, nullptr}}; // compiles
// std::map<int, std::unique_ptr<int>> unique_ptr_int{{1, std::unique_ptr<int>()}}; // Doesn't compile
}
注意:我特意询问这是否可以通过初始化列表构造函数来完成。我知道我可以使用不同的构造函数构造地图并添加元素,但我想知道是否可以使用这个构造函数以及如何使用它,也许使用 std::piecewise_construct 或类似的东西。
【问题讨论】:
标签: c++