У меня есть следующий функтор, и я включил его в основную программу
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
какие-либо предложения о том, как я могу это исправить? спасибо!