我一直想知道如何转发声明boost::multi_index_container
一段时间。
multi_index_container_fwd.hpp
目录中有ordered_index_fwd.hpp
,multi_index
等。
它们应该隐藏在程序部分的实现中,不需要知道对象的细节,对吧?
但是,我无法找到一种方法来单独使用那些* _fwd.hpp文件声明multi_index_container
。
我一直都包含完整的实施文件multi_index_container.hpp
索引。
答案 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>