我有两个循环依赖问题的类:
vector<A>
我最初这样解决了这个问题:
A.H:
#include "B.h"
class A
{
B b;
}
B.h:
class A;
class B : public vector<A>
{
}
#include "A.h"
不幸的是,如果在Windows上导出A和B,则在构造B时,MSVC会因为没有A的完整定义而窒息。
要解决这个问题,我需要在A中存储一个指向B的指针。我想要一个包装器,类似于boost :: scoped_ptr,但它在构造函数中创建了一个新对象,并且具有与之相同的复制语义。它指向的对象。这将采取以下形式:
A.H:
class B;
class A
{
magic_ptr<B> b;
}
B.h:
#include "A.h"
class B : public vector<A>
{
}
在我重新发明轮子之前,有没有人知道这是否已存在于STL或者提升中?
答案 0 :(得分:0)
你试图找到boost :: shared_ptr吗?