lower_bound(...、Compare comp)のようなSTLアルゴリズムの「comp」パラメーターのメンバー関数を提供したいと思います。comp()関数は非静的メンバーフィールドにアクセスするため、それ自体が非静的メンバーである必要がありますが、非静的メンバー関数ポインターのタイプは通常の関数ポインターのタイプとは異なります。
この問題を回避する最善の方法は何ですか?
std::mem_fun
これは、との最も一般的な使用法ですstd::mem_fun_ref
。これらは、指定されたメンバー関数を呼び出すファンクターを作成するテンプレートです。TR1は、std::tr1::bind
これも便利で用途が広いものを追加します(TR1が利用できない場合は、に基づいていますBoost::bind
)。C ++ 0xはstd::bind
標準ライブラリに含まれます(TR1から実質的に変更されていません)。
boost::bind
メンバー関数ポインターをそのクラスのインスタンスにバインドするために、のようなものが必要なようです。
あなたが何をしようとしているのかについて、あなたの質問を少し詳しく説明していただけませんか?サンプルコードなど?
#include<tr1/functional>
mem_fn()を使用します