List C+中的依赖项跟踪+;:依赖于单个对象的所有对象的列表

List C+中的依赖项跟踪+;:依赖于单个对象的所有对象的列表,list,boost,shared-ptr,ownership,List,Boost,Shared Ptr,Ownership,我需要开发一个库,在这里我需要跟踪依赖于另一个对象的对象列表。Boost library提供了一些功能,如shared_ptr和intrusive_ptr,这些功能允许我们跟踪依赖关系,但它们没有提供指向依赖对象的所有其他对象的列表等详细信息 假设我们有 Object B is dependent on A Object C is dependent on A (Multiple objects dependent on A) 我需要一些界面,比如 //Adding dependencies

我需要开发一个库,在这里我需要跟踪依赖于另一个对象的对象列表。Boost library提供了一些功能,如
shared_ptr
intrusive_ptr
,这些功能允许我们跟踪依赖关系,但它们没有提供指向依赖对象的所有其他对象的列表等详细信息

假设我们有

Object B is dependent on A
Object C is dependent on A
(Multiple objects dependent on A)
我需要一些界面,比如

//Adding dependencies
B.dep_obj = A obj
C.dep_obj = A obj
在上述操作之后,A的refcount应为2(加上包含B和C的列表)


如果我选择重载
操作符=
,我看到的一个挑战是获取对象B/C的引用,因为
操作符=
将是表示dep_obj对象的类的一部分(而不是表示B或C的类)。因此,我无法使用dep_obj(以通用方式)获取表示A和B的对象。

简单地存储指向
A_obj
的指针(可能是
NULL
)有什么问题吗?C++没有反射能力的构建。此外,没有垃圾收集。你想添加这个吗?
//Removing dependencies
B.dep_obj = NULL