shared_ptr 包含它的模板化类型
shared_ptr of a templated type enclosing it
是否可以让 shared_ptr
指向包含它的模板类型?例如,
pair<shared_ptr<ThisPairType>, int>
这个应该怎么定义?
不能直接写你想要的,因为name类型在你要使用的时候还没有完成。您甚至无法使用 typedef
解决此问题,因为无法转发声明 typedef。
我建议简单地写一个结构:
struct Recursive { std::shared_ptr<Recursive> first; int second; };
或根据 igor's 评论推荐的 pair
继承:
The best I could think of is struct ThisPairType : std::pair<std::shared_ptr<ThisPairType>, int> {};
Which is not quite what you want, but close.
是否可以让 shared_ptr
指向包含它的模板类型?例如,
pair<shared_ptr<ThisPairType>, int>
这个应该怎么定义?
不能直接写你想要的,因为name类型在你要使用的时候还没有完成。您甚至无法使用 typedef
解决此问题,因为无法转发声明 typedef。
我建议简单地写一个结构:
struct Recursive { std::shared_ptr<Recursive> first; int second; };
或根据 igor's 评论推荐的 pair
继承:
The best I could think of is
struct ThisPairType : std::pair<std::shared_ptr<ThisPairType>, int> {};
Which is not quite what you want, but close.