クラスメンバ関数に1つのパラメータをバインドする必要があります。このような 何か:std ::オブジェクトのないメンバー関数へのパラメータのバインド
#include <functional>
#include <iostream>
struct test
{
void func(int a, int b)
{
std::cout << a << " " << b << std::endl;
}
};
int main(int argc, char** argv)
{
typedef void (test::*TFunc)(int);
TFunc func = std::bind(&test::func, 1, std::placeholders::_1);
}
しかし、この場合には、私が持っているコンパイルエラー
error: static assertion failed: Wrong number of arguments for pointer-to
-member
おそらく 'std :: bind'によって生成されたオブジェクトが、プレーンなメンバ関数ポインタに変換可能であると期待するべきではありません。 – Quentin
基本的にクラス定義の外にメンバー関数を定義する方法を探しているなら、これは単純にできません。クラスにオーバーロードを追加するか、フリー関数を定義することしかできません。 –