编程有多糟?我是一个可怕的人吗?包括模板头解决方案
//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文件,然后包含它们而没有编译器错误的问题。
templates.h文件中的行#include "templates.cpp"
基本上等同于将您的声明和源代码全部包含在一个文件中。但这种方法很好地将它们分开,这正是我们似乎都在寻找的。
这是尝试进入FAQ条目吗? :) – jrok 2011-12-16 19:01:52
这不是一个问题 – 2011-12-16 19:01:59
如果你太可怕,我会避免问互联网。不要包含`.cpp文件。相反,在头文件中内联定义模板并完全放弃实现文件。 – AJG85 2011-12-16 19:02:35