アイテムを表示するクラスのポリシーを確立する関数が必要です。例えば:
SetDisplayPolicy(BOOLEAN_PRED_T f)
これは、 BOOLEAN_PRED_T が次のようなブール述語型への関数ポインタであると想定しています。
typedef bool (*BOOLEAN_PRED_T) (int);
たとえば、渡された述語がTRUEの場合は何かを表示し、falseの場合は表示しません。
上記の例は、bool を返し、int を受け取る関数に対して機能しますが、SetDisplayPolicy 引数には非常に一般的なポインターが必要なので、UnaryPredicate を考えましたが、boost 関連です。STL/C++ の関数に単項述語を渡すにはどうすればよいですか? unary_function< bool,T >
戻り値としてboolが必要なため機能しませんが、最も一般的なアプローチで、「boolを返す単項関数」だけをユーザーに求めたいと思います。
私は自分のタイプを次のように派生させることを考えました:
template<typename T>
class MyOwnPredicate : public std::unary_function<bool, T>{};
それは良いアプローチでしょうか?