diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/os/keyboard.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/os/keyboard.h b/core/os/keyboard.h index 9464f4305a..556ba3638e 100644 --- a/core/os/keyboard.h +++ b/core/os/keyboard.h @@ -315,7 +315,8 @@ constexpr Key operator-(uint32_t a, Key b) { } constexpr Key &operator-=(Key &a, int b) { - return (Key &)((int &)a -= b); + a = static_cast<Key>(static_cast<int>(a) - static_cast<int>(b)); + return a; } constexpr Key operator+(Key a, int b) { @@ -339,15 +340,18 @@ constexpr Key operator|(Key a, Key b) { } constexpr Key &operator|=(Key &a, Key b) { - return (Key &)((int &)a |= (int)b); + a = static_cast<Key>(static_cast<int>(a) | static_cast<int>(b)); + return a; } constexpr Key &operator|=(Key &a, KeyModifierMask b) { - return (Key &)((int &)a |= (int)b); + a = static_cast<Key>(static_cast<int>(a) | static_cast<int>(b)); + return a; } constexpr Key &operator&=(Key &a, KeyModifierMask b) { - return (Key &)((int &)a &= (int)b); + a = static_cast<Key>(static_cast<int>(a) & static_cast<int>(b)); + return a; } constexpr Key operator|(Key a, KeyModifierMask b) { |