能够以相同类型存储 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>> 没问题,但不可能直接取消引用它,这有点烦人。有没有更好的办法?