我有以下函子和我在我的主要程序包括它算符,頭文件
template<class T> struct Comp: public binary_function<T, T, int>
{
int operator()(const T& a, const T& b) const
{
return (a>b) ? 1: (a<b) ? -1 :0;
}
};
它沒有給任何錯誤,當它在的.cpp,但現在當我把它移到我的.h,它給了我下面的錯誤:
testclass.h: At global scope:
testclass.h:50:59: error: expected template-name before ‘<’ token
testclass.h:50:59: error: expected ‘{’ before ‘<’ token
testclass.h:50:59: error: expected unqualified-id before ‘<’ token
所以,我重寫它:
template<class T> T Comp: public binary_function<T, T, int>
{
int operator()(const T& a, const T& b) const
{
return (a>b) ? 1: (a<b) ? -1 :0;
}
};
,現在我得到以下錯誤:
testclass.h: At global scope:
testclass.h:50:30: error: expected initializer before ‘:’ token
有關我如何修復它的任何建議?謝謝!
不包括的std ::是我的錯....我有包括... THX UncleBens :-) – itcplpl