2013-07-30 36 views
1

我一直想知道如何在一段时间内声明boost::multi_index_container正向声明boost :: multi_index_container对象

multi_index目录中有multi_index_container_fwd.hpp,ordered_index_fwd.hpp等。

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

但是,我找不出一种方法来声明multi_index_container这些* _fwd.hpp文件。

我一直总是包含完整的实现文件,multi_index_container.hpp索引。

回答

2

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

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到位。

+0

谢谢!这就是我需要的! – crackpot