C++提升前瞻性声明问题

Yip*_*Yay 10 c++ boost forward-declaration

我花了一些时间来检查boost::库架构,并对以下事实感兴趣:

在库的某些部分中,使用的yyy_fwd.hpp想法很常见(参见boost/detailboost/flyweight示例).

这些文件显然只包含一些基于模板的类的前向声明,据我所知,可以在编译时间方面受益.

有人可以指出它们在什么情况下有所帮助,我应该在设计自己的模板时使用相同的想法吗?

谢谢.

Kir*_*sky 3

需要前向声明来减少编译时依赖性。例如,在实现 Pimpl idiom 时。

还有一种情况是,比如boost::pool*依赖于windows.hWindows平台。创建界面时,我不想强​​制类的用户使用我的界面包含系统标头。


*好吧,这是一个坏例子,因为boost/poolfwd.hpp仍然包含windows.h,但我希望他们能解决这个问题。我希望你能明白。