转发声明一个boost :: multi_index_container对象

时间:2013-07-30 03:02:59

标签: c++ boost forward-declaration boost-multi-index

我一直想知道如何转发声明boost::multi_index_container一段时间。

multi_index_container_fwd.hpp目录中有ordered_index_fwd.hppmulti_index等。

它们应该隐藏在程序部分的实现中,不需要知道对象的细节,对吧?

但是,我无法找到一种方法来单独使用那些* _fwd.hpp文件声明multi_index_container

我一直都包含完整的实施文件multi_index_container.hpp索引。

1 个答案:

答案 0 :(得分:2)

原则上,您应该能够使用适当的multi_index_container标头转发声明(例如,依赖于*_fwd.hpp类型的函数。但并非所有情况都可以这样处理:

class A{
  ...
private:
  multi_index_container<...>* p; // can use *_fwd.hpp headers
};

class B{
  ...
private:
  multi_index_container<...> m; // needs full headers!!
};

这里没有什么特别的Boost.MultiIndex:每当你声明一个类型T的变量,其大小需要在编译时知道时,你必须有T的完整定义。< / p>