所以假設我有一個像這樣的一系列自定義比較:如何自定義比較傳遞給自定義函數的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