c++ - 是否允许将 unique_ptr 分配给 shared_ptr?
问题描述
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 转换为共享?因此没有编译器警告。
解决方案
是的,这会调用相应的赋值运算符:
template< class Y, class Deleter >
shared_ptr& operator=( std::unique_ptr<Y,Deleter>&& r );
推荐阅读
- python - 有没有办法在 excel 中运行 python 脚本来更新单元格范围?
- azure - 当 blob 更改时触发 Azure 数据块
- forms - Symfony5:所有模板的表单处理
- java - JUnit 5 迁移 - 如何解决 java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ReflectiveInvocationContext
- reporting-services - SSRS Conditional formatting USING CONTAINS
- android - 如何使用多部分和改造发送图像列表
- c - 在二叉搜索树中查找第 k 个最大元素的程序不给出输出
- javascript - ThreeJS:运行时的材质更新
- xml - 如何在 BPEL 流程中的 XSLT 转换中为每个和创建数组
- python - 我们如何在 Flask api 中将多个 sqlalchemy 查询集分页为一个