在C ++ Boost库中,为什么某些头文件会有“.ipp”扩展名?
它们似乎是同名“.hpp”文件中包含的头文件。
这种惯例在Boost之外是否常见?
拥有特殊文件类型的理由是什么?
答案 0 :(得分:48)
如果要将模板源拆分为界面和 实施(这有很多很好的理由,包括 控制实例化),你不能很好地使用相同的名称 (foo.hpp)两次,而foo.cpp不适合任何一个。 foo.ipp清楚地将文件描述为一个旨在实现的实现文件 在foo.hpp中#included。
答案 1 :(得分:15)
我相信“ipp”代表“实施”文件。即,它们实际上包含代码(用于内联函数和模板),而不仅仅是声明(在标题中 - .H或.HPP - 文件)