У вас нет operator >
, определенного для Car
.Компилятор не знает, как оценить (vec[i] > returnValue)
.Если вы определите этот оператор, у вас должно быть все в порядке:
struct Car {
...
bool operator >(const Car & other) const
{
// compare them however you like
return weight < other.weight;
}
}
Кроме того, вам необходимо изменить это:
Type returnValue = new Type;
на
Type returnValue; // this default constructs the object
Обновление:
Поскольку у вас есть доступная функция сравнения, вам не нужно писать operator >
.Вместо этого используйте функцию сравнения:
if(cmpFn(vec[i], returnValue) > 0) {
returnValue = vec[i];
}