假設我有這樣的代碼:對C++模板代碼涅槃樣板代碼
template <class T>
class Something{
public:
int func1();
int func2();
T t;
int n = 0;
};
template <class T>
int Something<T>::func1(){
return t.value() * n;
}
template <class T>
int Something<T>::func2(){
return n;
}
在這種情況下Something::func2()
並不真正依賴模板參數T的,因此它可以被編譯成目標文件,而不是重新編譯每次(這是依賴於編譯器的,可以或不可以)。
其次,您仍然需要鍵入template <class T> int Something<T>::func2()
。
有沒有簡化樣板代碼的方法?
將代碼推入基類中? – Nim
添加一個非模板基類,並在其中移動func1()和func2()。 – Jojje
我想過一些關於疙瘩的... – Nick