您好我嘗試在VC建立一個tamplate功能++象下面這樣:錯誤:C++模板函數
template<class _Fn0,class _Fn1> void for_each(_Fn0 _Func0,_Fn1 _Func1)
{
_Func0(12);
_Func1(12);
}
當我使用_Func0/1全局函數這項工作propely。
void aglobal(int a)
{
a++;
}
for_each(aglobal,aglobal);
但是當我使用memeber類函數時,我收到錯誤消息。
class A
{
public:
void aa(int a)
{
a++;
}
void bb(int b)
{
b++;
}
void cc()
{
for_each(&A::aa,&A::bb);
}
};
錯誤C2064:術語不計算爲服用1個參數 1>見參考起作用模板實例 '無效的for_each(_Fn0,_Fn1)' 被編譯的功能。
我該如何解決這個錯誤?
謝謝herzl。
請注意,以下劃線後跟大寫字母(如'_Fn0'或'_Func0')開頭的名稱會被保留,因此您不允許在代碼中使用它們。編譯器和標準庫實現通常在內部使用這些名稱。 – 2011-03-24 15:52:45