我需要一个函数来为我的班级建立一个显示项目的策略。例如:
SetDisplayPolicy(BOOLEAN_PRED_T f)
这是假设 BOOLEAN_PRED_T 是指向某些布尔谓词类型的函数指针,例如:
typedef bool (*BOOLEAN_PRED_T) (int);
我只对例如感兴趣:当传递的谓词为真时显示某些内容,当它为假时不显示。
上面的示例适用于返回 bool 并采用 int 的函数,但我需要一个非常通用的 SetDisplayPolicy 参数指针,所以我想到了 UnaryPredicate,但它与 boost 相关。如何将一元谓词传递给 STL/C++ 中的函数?unary_function< bool,T >
不起作用,因为我需要一个 bool 作为返回值,但我想以最通用的方法向用户询问“返回 bool 的一元函数”。
我想将我自己的类型派生为:
template<typename T>
class MyOwnPredicate : public std::unary_function<bool, T>{};
这会是一个好方法吗?