在boost.intrusive文档中,提到了使用多个容器来存储一个对象。然而,没有实际的例子,所以我自己创建了一个。这是正确的做法吗?
如果我添加另一个相同类型的容器(例如添加另一个DefaultList),将会产生错误。这是有意为之吗?为什么不允许使用第二个相同类型的容器?
#include <boost/intrusive/list.hpp>
struct tag1;
class A:public list_member_hook<>, public list_member_hook<tag<tag1> >
{
}
typedef list_base_hook<tag<tag1> > TagHook;
typedef list<A> DefaultList;
typedef list<A, base_hook<TagHook> > TagList;
int main()
{
DefaultList dList;
TagList tList;
A *a = new A();
dList.push_back(a);
tList.push_back(a);
}
如果我添加另一个相同类型的容器(例如添加另一个DefaultList),将会产生错误。这是有意为之吗?为什么不允许使用第二个相同类型的容器?