在C++ Boost库中,为什么某些头文件中有".ipp"扩展名?
它们似乎是同名".hpp"文件中包含的头文件.
这个惯例在Boost之外是否常见?
拥有特殊文件类型的理由是什么?
说明从模板大师之一:
如果你想将你的模板源分成接口和实现(有很多很好的理由,包括控制实例化),你不能很好地使用相同的名称(foo.hpp)两次,并且foo.cpp不适合任何一个.foo.ipp清楚地将文件描述为foo.hpp中的#included实现文件.
我相信"ipp"代表"实现"文件.即,他们实际上持有代码(用于内联函数和模板)而不仅仅是声明(在标题中 - .H或.HPP - 文件)