【发布时间】:2018-08-16 10:40:17
【问题描述】:
std::map<std::string, std::shared_ptr<SomeClass>> map_string_to_object_pointer;
map_string_to_object_pointer["abcd"] = std::make_unique<SomeClass>();
问题是关于将 unique_ptr 分配给 shared_ptr。这是一个现有的代码,因此只是试图了解它是否是一个糟糕的编程或将唯一分配给 shared_ptr 隐式地将 unique_ptr 转换为共享?因此没有编译器警告。
【问题讨论】:
-
为什么不应该?它甚至比分配常规指针更安全,尽管在这种情况下使用
make_unique而不是make_shared没有意义。 -
@lubgr 感谢您对副本的引用。这正是我想要的。
标签: c++