私はこのコードを持っています:
// signal supporter parent
class signalable {};
template <class typeT = signalable>
typedef void (typeT::*trig)(std::string);
template <class typeT = signalable>
class trigger
{
private:
typeT* instance;
typeT::trig fun;
public:
trigger(typeT* inst, typeT::trig function)
: instance(inst), fun(function)
{}
void operator ()(std::string param)
{
(instance->*fun)(param);
}
};
そして、プロが知っているに違いない多くのコンパイルエラーが発生します。私はこの文脈について少し混乱しています。
私がやりたいことは明らかです。オブジェクトへのポインターとそのメンバー関数の1つへのポインターを渡し、ファンクターを作成してプログラムに渡します。
あなたの助けと「修正」をいただければ幸いです。
ありがとうございました!