为什么我无法使用unique_ptr的花括号初始化方式来初始化map?
编辑:我使用c++17模式下的gcc 7.2。
我可以使用make_pair和[]运算符创建并插入unordered map。
但我不明白为什么使用大括号时会失败。
错误:使用已删除的函数'std :: pair<_T1,_T2> :: pair(const std :: pair<_T1,_T2>&)。
编辑:我使用c++17模式下的gcc 7.2。
我可以使用make_pair和[]运算符创建并插入unordered map。
std::unordered_map<std::string, std::unique_ptr<A>> map;
map.insert(std::make_pair("hello",std::make_unique<A>()));
map["foo"] = std::make_unique<A>();
但我不明白为什么使用大括号时会失败。
map.insert({"foo", std::make_unique<A>()}); // Error
错误:使用已删除的函数'std :: pair<_T1,_T2> :: pair(const std :: pair<_T1,_T2>&)。
std::make_unique
。 - Rakete1111