template <typename _Ty>
class A
{
public:
A(){}
~A(){}
private:
static bool Equals(const _Ty &a, const _Ty &b) { return a == b;}
};
//специализируем для char*
template<>
bool A<char*>::Equals(const char* &a, const char* &b){
return !strcmp(a, b);
}
Но получим такую ошибку 'A<_Ty>::Equals' : unable to match function definition to an existing declaration. Чуть поколупавшись, оказалось, что работает вот такой вариант:
template<>
bool A<char*>::Equals(char* const &a, char* const &b){ //WHY
return !strcmp(a, b);
}
char* const &a — сатана какой-то:DDD
UPD. В идеале надо было бы сделать Equals public'ом и friend'ом, а то немного не логично вышло, не ругайте:)








