小编Vla*_*hev的帖子

可以同时包含 Foo* 和 std::shared_ptr<Foo> 的类型

能够以相同类型存储 std::shared_ptr 或 Foo* 的最方便的方法是什么?

Foo* a = ...;
std::shared_ptr<Foo> b = ...;

Bar c = a; // Success, Bar type can hold Foo*
Bar d = b; // Success, Bar type can also hold std::shared_ptr<Foo>
Run Code Online (Sandbox Code Playgroud)

std::variant<Foo*, std::shared_ptr< Foo>> 没问题,但不可能直接取消引用它,这有点烦人。有没有更好的办法?

c++ c++17

6
推荐指数
2
解决办法
184
查看次数

标签 统计

c++ ×1

c++17 ×1