所以假设我有一个像这样的一系列自定义比较:如何自定义比较传递给自定义函数的C++
template <typename T>
class less_class {
bool operator() (T obj, T value) const {
return obj < value;
}
};
template <typename T>
class greater_than {
bool operator() (T obj, T value) const {
return obj > value;
}
};
template <typename T>
class equal_to {
bool operator() (T obj, T value) const {
return obj == value;
}
};
,我有这样的功能:
template <typename T>
bool compare_values(T obj, T value, T comparator(T obj, T value)) {
if comparator(obj, value) return true;
return false;
}
什么语法我应该在compare_values函数中使用它,以便它可以使用上述任一比较器并在其实现中使用它?目前,我的函数比较器参数是以类似于上面的方式编写的,Xcode正在抛出错误。我曾尝试搞乱这些争论,看看有什么可行的,但我想我需要更好地理解我在这里要做的事情。任何帮助,将不胜感激!
注意你的类已经是标准的:'std :: less','std :: greater_than' ecc。 – edmz
你的比较器应该是'public'作为修饰符的结构或类。 – Goodies