是否可能有shared_ptr
指向包含它的模板类型?例如,
pair<shared_ptr<ThisPairType>, int>
应如何定义?
答案 0 :(得分:1)
无法直接写下您想要的内容,因为该类型的名称在您要使用该名称时尚未完成。您甚至无法使用typedef
解决此问题,因为无法转发声明的typedef。
我建议只编写一个结构:
struct Recursive { std::shared_ptr<Recursive> first; int second; };
或按照igor's评论的建议从pair
继承:
我能想到的最好的是
struct ThisPairType : std::pair<std::shared_ptr<ThisPairType>, int> {};
,它不是您想要的,而是接近的。