クラス(Dialog::handler)のメンバーへのポインタを(Dialog::renderのスコープ内の)メソッドから外部メソッド(Button::OnClick)に渡そうとしています。
以下に小さな例を示します。
class Button
{
public:
void OnClick(void (*handler)())
{
handler();
}
};
class Dialog
{
public:
void handler()
{
//do stuff
}
void render()
{
auto button = new Button;
//Source of problem
button->OnClick(this->*handler);
}
};
しかし、コンパイラはエラーを示しています:
非標準の構文; 「&」を使用してメンバーへのポインタを作成します
また、次のような他の組み合わせも試します。
- this->ハンドラ。
- &this.handler.
- this.* ハンドラ。
- 等
しかし、明らかに彼らは失敗しました。