オーバーロードされたメンバー関数の特定のバージョンへのポインターを取得しようとしています。次に例を示します。
class C
{
bool f(int) { ... }
bool f(double) { ... }
bool example()
{
// I want to get the "double" version.
typedef bool (C::*MemberFunctionType)(double);
MemberFunctionType pointer = &C::f; // <- Visual C++ complains
}
};
エラー メッセージは、「エラー C2440: 'initializing' : 'overloaded-function' から 'MemberFunctionType' に変換できません」です。
これf
はオーバーロードされていない場合に機能しますが、上記の例では機能しません。なにか提案を?
編集
上記のコードは、「const」を忘れていたという現実の問題を反映していないことに注意してください-これは、受け入れられた回答が指摘していることです。ただし、問題は他の人にも発生する可能性があると思うので、質問はそのままにしておきます。