編程有多糟?我是一個可怕的人嗎?包括模板頭解決方案
//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