包括模板头
Including template headers SOLUTION
本文关键字:包括模 更新时间:2023-10-16
我的编程水平有多差?我是一个很糟糕的人吗?
//templates.cpp
template <typename TYPE> void some_func(int arg1, ...)
{
//do stuff
}
:
//templates.h
#ifndef TEMPLATES_H_INCLUDED
#define TEMPLATES_H_INCLUDED
#include "templates.cpp"
template <typename TYPE> void some_func(int arg1, ...);
#endif
最后:
//main.cpp
#include "templates.h"
int main ...
some_func<int>(5);
std::fprintf(stderr, "ZOMG IT WORKT!n!n!n!");
这对我来说很好。它似乎解决了我们很多人关于如何正确分离。cpp和。h文件的模板,然后包括他们没有编译器错误的无休止的问题。
template .h文件中的#include "templates.cpp"
行基本上相当于将声明和源代码都包含在一个文件中。但是这个方法很好地把它们分开了,这就是我们似乎都在寻找的。
- 通常具有模板实现的文件被赋予不同的扩展名。例如boost使用
.ipp
,其他可能使用.inl
。这不是我们真正想要的。我们真正想要的是单独编译模板的实现,以减少编译时的依赖。这实际上是一种很常见的方法,除了我认为你应该把
#include "templates.cpp"
放在*.h
的结尾,而不是开头。
同时,你仍然应该将函数标记为inline
。
相关文章:
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 为什么 cmake 许可证<>样式不包括?
- 为什么模数运算符不适用于该代码
- 计算平均值,不包括上次得分
- 如何在C++中使用X509证书模在令牌中查找私钥
- 从多个源构造一个对象,包括一个对象向量
- 如何在QT中制作模态QProgressDialog?
- 模量行为 -1 % 3 (C++)
- 在编译中包括 Botan 2
- 将值从另一个数组写入数组,不包括不需要的值 C++
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 我可以通过取每个数字的模并取和来计算大数的模数吗?
- 包括C++头文件
- CPP 包括 Azure DevOps 中的目录设置
- 不同语言中的模运算符差异
- 包括STL,而不会乱扔全球范围
- 如何反转我的输入,包括否定
- 包括没有完整路径的我的库
- 试图重写代码以包括模量运算符