【发布时间】:2010-10-07 07:24:54
【问题描述】:
在 C++ Boost 库中,为什么某些头文件有“.ipp”扩展名?
似乎它们是同名“.hpp”文件中包含的头文件。
这种约定在 Boost 之外很常见吗?
拥有特殊文件类型的理由是什么?
【问题讨论】:
在 C++ Boost 库中,为什么某些头文件有“.ipp”扩展名?
似乎它们是同名“.hpp”文件中包含的头文件。
这种约定在 Boost 之外很常见吗?
拥有特殊文件类型的理由是什么?
【问题讨论】:
Explanation 来自模板专家之一:
如果您想将模板源拆分为界面和 实施(有很多充分的理由这样做,包括 控制实例化),你不能很好地使用相同的名称 (foo.hpp) 两次,而 foo.cpp 不适合任何一个。 foo.ipp 清楚地将该文件描述为一个实现文件,旨在 被#include 在 foo.hpp 中。
【讨论】:
我相信“ipp”代表“实施”文件。即,它们实际上包含代码(用于内联函数和模板),而不仅仅是声明(位于标头 --.H 或 .HPP -- 文件中)
【讨论】: