是否存在用于模板类实现的文件扩展名的约定? **。tpp .template .hpp **
答案 0 :(得分:9)
“是否存在用于模板类实现的文件扩展名的约定?”
目前尚未为这些文件扩展名AFAIK建立标准惯例。
虽然有很多常用的文件扩展名,比如
.icc
.inl
.tcc
(这似乎至少是我的GCC 4.8.1标准库实现所使用的)...
这并不重要,因为无论如何,您需要使用模板头文件中的#include "MyImpl.tcc"
,#include "MyImpl.tpp"
语句来明确它。
你可以使用例如.tci
( t 强调 c lass i 实施,我在创作上发明了一个飞到这里;-))
重要的一点是,您应该对解决方案中涉及的所有项目使用一致的命名策略(这样可以更轻松地设置IDE首选项以进行语法突出显示)。
唯一的 没有去 扩展程序IMHO是.cc
,.cpp
,.cxx
和.c
,混淆了大多数自动构建系统和IDE目前的问题。构建系统将假设这些文件需要构建并链接为其他对象,并且因为这些文件无法单独构建或者在链接中以多个符号定义结束而失败。
答案 1 :(得分:5)
没有
很多项目并不关心,只是将所有内容都放在.hpp
文件中。我这样做。
许多其他项目(像Eigen和Boost这样的大标题)将内联代码和模板实现分成.inl
(用于内联)文件。
我从未亲眼见过.tpp
,但这并不意味着没有项目可以做到这一点。
但是没有惯例,没有。