C++模板实现文件扩展名约定

C++ Template implementation file extension convention?

本文关键字:扩展名 约定 文件 实现 C++      更新时间:2023-10-16

模板类实现使用的文件扩展名有约定吗?**。tpp.template.hpp**

"模板类实现使用什么文件扩展名有约定吗?"

不,并没有为这些文件扩展名AFAIK建立一个真正的标准约定。

不过,有很多常用的文件扩展名,比如

  • .icc
  • .inl
  • .tcc(它似乎至少被我的GCC 4.8.1标准库实现所使用)
  • ...

这其实并不重要,因为无论如何都需要通过模板头文件中的#include "MyImpl.tcc"#include "MyImpl.tpp"语句来明确说明这一点。

例如,您可以使用.tcit模板ci实现,我在这里创造性地发明了一个;-)

一个重要的点是,您应该对解决方案涉及的所有项目使用一致的命名策略(这将使您更容易设置语法高亮显示的IDE首选项)。


唯一的no-go扩展IMHO是.cc.cpp.cxx.c,这将混淆当前大多数自动化构建系统和IDE。构建系统将假设这些文件需要作为附加对象进行构建和链接,但由于这些文件无法独立构建,或者最终导致多个符号定义处于链接状态而失败。

否。

很多项目都不太在意,只是把所有东西都放在.hpp文件中。我这样做。

许多其他项目(只有大标题的项目,如Eigen和Boost)将内联代码和模板实现拆分为.inl(用于内联)文件。

我个人从未见过.tpp,但这并不意味着没有这样的项目

但没有约定,没有