4

lower_bound(...、Compare comp)のようなSTLアルゴリズムの「comp」パラメーターのメンバー関数を提供したいと思います。comp()関数は非静的メンバーフィールドにアクセスするため、それ自体が非静的メンバーである必要がありますが、非静的メンバー関数ポインターのタイプは通常の関数ポインターのタイプとは異なります。

この問題を回避する最善の方法は何ですか?

4

3 に答える 3

7

std::mem_funこれは、との最も一般的な使用法ですstd::mem_fun_ref。これらは、指定されたメンバー関数を呼び出すファンクターを作成するテンプレートです。TR1は、std::tr1::bindこれも便利で用途が広いものを追加します(TR1が利用できない場合は、に基づいていますBoost::bind)。C ++ 0xはstd::bind標準ライブラリに含まれます(TR1から実質的に変更されていません)。

于 2010-07-20T04:56:14.850 に答える
6

boost::bindメンバー関数ポインターをそのクラスのインスタンスにバインドするために、のようなものが必要なようです。

あなたが何をしようとしているのかについて、あなたの質問を少し詳しく説明していただけませんか?サンプルコードなど?

于 2010-07-20T04:54:53.433 に答える
1
#include<tr1/functional>

mem_fn()を使用します

于 2010-07-20T15:14:27.547 に答える