私はC++でGLFWと彼のコールバック関数を使っていました。 私がコールバック関数で達成したいのは、私のクラスの型の変数を変更することですKeyboard
。コールバック関数のGLFWがより多くの引数を渡しました
コールバック関数は、私がKeyboard
キャプチャラムダ関数を渡すことはできません
glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun cbfun)
タイプvoid(* GLFWkeyfun) (GLFWwindow *, int, int, int, int)
でなければなりません。
テンプレート化された関数で動作しますが、Keyboard
がコンパイル時に定義されなければならないため、オブジェクト指向のコードになりません(つまり、新しいウィンドウを新しいインスタンスを作るのは簡単です)。
私はKeyboard
が含まれている派生オブジェクトを、置くことができるように、私は、コールバックの第一引数から同じオブジェクトを取得することができるように、私はglfwSetKeyCallback
の最初の引数として、多型を使用することができるようにGLFWwindow
を拡張しようとしました関数。しかし、私がGLFWwindow
を延長すると、IDEは "不完全な型は許可されていません"と伝えます
私はKeyboard
をコールバックから変更できますか?私は本当に私のデザインを可能な限りモジュール化したいと思っています。