From 2907ca3a4160efd9e8afe1f636f87df5e6964134 Mon Sep 17 00:00:00 2001 From: Rainer Deyke Date: Fri, 1 Apr 2022 11:04:25 +0200 Subject: Made Key operators constexpr Made operators on Key and KeyModifierMask constexpr, allowing them to be used in switch cases. --- core/os/keyboard.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/core/os/keyboard.h b/core/os/keyboard.h index a21d81b2e7..9464f4305a 100644 --- a/core/os/keyboard.h +++ b/core/os/keyboard.h @@ -310,67 +310,67 @@ enum class KeyModifierMask { // To avoid having unnecessary operators, only define the ones that are needed. -inline Key operator-(uint32_t a, Key b) { +constexpr Key operator-(uint32_t a, Key b) { return (Key)(a - (uint32_t)b); } -inline Key &operator-=(Key &a, int b) { +constexpr Key &operator-=(Key &a, int b) { return (Key &)((int &)a -= b); } -inline Key operator+(Key a, int b) { +constexpr Key operator+(Key a, int b) { return (Key)((int)a + (int)b); } -inline Key operator+(Key a, Key b) { +constexpr Key operator+(Key a, Key b) { return (Key)((int)a + (int)b); } -inline Key operator-(Key a, Key b) { +constexpr Key operator-(Key a, Key b) { return (Key)((int)a - (int)b); } -inline Key operator&(Key a, Key b) { +constexpr Key operator&(Key a, Key b) { return (Key)((int)a & (int)b); } -inline Key operator|(Key a, Key b) { +constexpr Key operator|(Key a, Key b) { return (Key)((int)a | (int)b); } -inline Key &operator|=(Key &a, Key b) { +constexpr Key &operator|=(Key &a, Key b) { return (Key &)((int &)a |= (int)b); } -inline Key &operator|=(Key &a, KeyModifierMask b) { +constexpr Key &operator|=(Key &a, KeyModifierMask b) { return (Key &)((int &)a |= (int)b); } -inline Key &operator&=(Key &a, KeyModifierMask b) { +constexpr Key &operator&=(Key &a, KeyModifierMask b) { return (Key &)((int &)a &= (int)b); } -inline Key operator|(Key a, KeyModifierMask b) { +constexpr Key operator|(Key a, KeyModifierMask b) { return (Key)((int)a | (int)b); } -inline Key operator&(Key a, KeyModifierMask b) { +constexpr Key operator&(Key a, KeyModifierMask b) { return (Key)((int)a & (int)b); } -inline Key operator+(KeyModifierMask a, Key b) { +constexpr Key operator+(KeyModifierMask a, Key b) { return (Key)((int)a + (int)b); } -inline Key operator|(KeyModifierMask a, Key b) { +constexpr Key operator|(KeyModifierMask a, Key b) { return (Key)((int)a | (int)b); } -inline KeyModifierMask operator+(KeyModifierMask a, KeyModifierMask b) { +constexpr KeyModifierMask operator+(KeyModifierMask a, KeyModifierMask b) { return (KeyModifierMask)((int)a + (int)b); } -inline KeyModifierMask operator|(KeyModifierMask a, KeyModifierMask b) { +constexpr KeyModifierMask operator|(KeyModifierMask a, KeyModifierMask b) { return (KeyModifierMask)((int)a | (int)b); } -- cgit v1.2.3