c++中操作符重载是不是不支持特化?高手看看
template<typename T>
bool foo(const T lhs,const T rhs)
{
return lhs < rhs;
}
template<>
bool foo(const char* lhs,const char* rhs)
{
return strcmp(lhs,rhs);
}
这个代码是可以的,但是如果改成operator<则报错
template<>
bool operator< <char*>(const char* lhs,const char* rhs) //c2919 error
改成
template<>
bool operator< (const char* lhs,const char* rhs) //c2803 error
我记得好象用template或typename好象可以说明
但以下两种也不对
template<>
bool operator< template<char*>(const char* lhs,const char* rhs) //error
template<>
bool operator< typename<char*>(const char* lhs,const char* rhs) //error
《c++程序语言设计》中也没说明是否充许操作符重载函数进行特化?
它只给出一个less的例子,看来c++之父对于这个问题也不清楚,呵呵