#define UCHAR unsigned char
typedef bool (*FUNC)(UCHAR uc1, UCHAR uc2);
typedef void(*PF)(FUNC, UCHAR*);
PF Assign;
class Class {
private:
UCHAR buf[32];
bool func(UCHAR c1, UCHAR c2) { }
public:
Class::Class(void) {
Assign( func, buf ); // <<< Microsoft VC++ error C3867
}
Class::~Class() { }
};
エラー C3867: 'Class::func': 関数呼び出しに引数リストがありません。'&Class::func' を使用してメンバーへのポインターを作成する
上記のエラーメッセージの提案を試してみると
Assign( &Class::func, buf ); // <<< Microsoft VC++ エラー C2664
次のエラーが表示されます。
エラー C2664: 'void (FUNC,unsigned char *)': パラメーター 1 を 'bool (__thiscall Class::* )(unsigned char,unsigned char)' から 'FUNC' に変換できません この変換が可能なコンテキストはありません
他に何も変更せずに、この Assign() 関数をコンパイルするにはどうすればよいですか? これらの typedef は、インターフェイスする必要があるライブラリからのものです。