C++:模板实现(代码样式)
C++: Template implementation (code style)
模板类的实现必须包含在定义它的头文件中。这样一个类的实现应该在类中还是常规完成(就像你对其他所有类所做的那样),但只是在头文件中完成?
我对常规方法遇到的问题是实现变得非常臃肿,因为您需要将模板定义放在前面。我想知道哪种是最常见的方式。
可能最常见的方法是编写类定义,然后将实现写入另一个文件中,然后将实现文件#include
在头文件底部,并且不要将其列在要编译的文件中。这样它们在不同的文件中,但编译器感到满意,因为定义和声明在预处理后位于同一文件中。
例:
// header.h
template<typename T>
struct A {
int dostuff();
};
#include "header.template"
<小时 /> // header.template (not header.cpp, to make it clear that this doesn't get compiled)
template<typename T>
int A::dostuff() {
// do stuff
}
预处理器完成后,文件如下所示
template<typename T>
struct A {
int dostuff();
};
template<typename T>
int A::dostuff() {
// do stuff
}
相关文章:
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- C++代码::块大括号样式
- 禁用 Qt5 代码中的旧(Qt4 样式)信号槽语法
- 此代码中的数组初始化样式是什么?这是标准的吗?
- 此代码如何启动索引为 1 的 C 样式字符串
- 需要WXLISTCTRL的代码更改为虚拟样式WXListCtrl的工作代码
- 为什么两个相同的代码给出不同的输出,而它们之间的唯一区别是不同的变量名称和写作样式
- 从旧的 C 样式指针移动到C++智能指针,代码几乎没有变化
- 设置精度应用于旧的 C 样式代码
- 如何使用 for(int i:myVector) 代码样式知道元素是否是矢量中的最后一个元素
- C++模板样式代码
- 如何从代码中删除C样式注释
- C++:模板实现(代码样式)
- 通用配置代码的 Cmake 和编码样式
- C 样式转换是添加程序集(代码)还是仅供编译器了解情况
- 在 C++ 中链接"C"样式代码
- 带有返回的If语句代码样式
- 如何在QT使用代码样式标签
- 用于检测c++代码样式问题的工具