重複の可能性:
C ++で列挙型をフラグとして使用するにはどうすればよいですか?
私がやろうとしていることを説明するために、次のような更新チェック情報を含むフラグ整数を取得しようとしています。
int flags = keyPress | mouseClick | mouseMove;
イベントの列挙から;
enum mEvents {
keyPress = QEvent::KeyPress,
keyRelease = QEvent::KeyRelease,
mouseClick = QEvent::MouseButtonPress,
mouseDoubleClick = QEvent::MouseButtonDblClick,
mouseMove = QEvent::MouseMove
};
そのため、どのようなイベントタイプが発生したかを確認できます。
void Lib::Update(QEvent *e) {
if (e->type() == flags)
stateManager->updateCurrentState(e);
}
私がやろうとしているのは、イベントタイプが「フラグ」の次のいずれかである場合に更新することです。ただし、それは機能していません。より正確には、キーを押しても機能しますが、マウスクリックや移動イベントでは機能しません。
ですから、私がやりたいことさえ可能かどうか疑問に思っています。もしそうなら、どうすればこれを達成できますか?(確かにそうですが、SDLは画面の作成に同様のフラグシステムを使用していることを知っています)どんな助けでも大歓迎です。)