我怎样才能正确地超载> operator作为C ++中的模板函数?学习模板重载

时间:2015-04-02 03:51:59

标签: c++ function templates overloading

我想做一个常规的运算符重载,但是有模板。想象一下:

template <typename Type>
bool operator> (Type &tX, Type &tY)
{
     return (tX.data > tY.data) ? tX : tY;
}

但我想让它适用于任何类或原语。代码有什么问题?

1 个答案:

答案 0 :(得分:2)

  

如何正确重载&gt; operator作为C ++中的模板函数?

  1. 您不能为基本类型重载>运算符。该语言不允许这样做。

  2. 您也不能以任何明智的方式为用户定义的类型重载>运算符。通用实现无法知道如何将用户定义类型的一个实例与另一个相同类型的实例进行比较。