在C ++ Boost库中,为什么在某些头文件上有“.ipp”扩展名

时间:2009-02-12 21:49:43

标签: c++ boost

在C ++ Boost库中,为什么某些头文件会有“.ipp”扩展名?

它们似乎是同名“.hpp”文件中包含的头文件。

这种惯例在Boost之外是否常见?

拥有特殊文件类型的理由是什么?

2 个答案:

答案 0 :(得分:48)

来自模板专家之一的

Explanation

  

如果要将模板源拆分为界面和   实施(这有很多很好的理由,包括   控制实例化),你不能很好地使用相同的名称   (foo.hpp)两次,而foo.cpp不适合任何一个。   foo.ipp清楚地将文件描述为一个旨在实现的实现文件   在foo.hpp中#included。

答案 1 :(得分:15)

我相信“ipp”代表“实施”文件。即,它们实际上包含代码(用于内联函数和模板),而不仅仅是声明(在标题中 - .H或.HPP - 文件)