From 42e72ce0771207701365ef0b52bf1d4cb60b9d2d Mon Sep 17 00:00:00 2001 From: Adrian Conlon Date: Sun, 2 Jan 2022 12:29:39 +0000 Subject: [PATCH] Spaceship operator didn't work as a I wanted it, so I've gone old school again until I can work out why the "==" operator couldn't be found. --- inc/Register.h | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/inc/Register.h b/inc/Register.h index 0c0b972..893c72f 100644 --- a/inc/Register.h +++ b/inc/Register.h @@ -68,28 +68,15 @@ namespace EightBit { this->word -= rhs.word; return *this; } + + [[nodiscard]] constexpr auto operator==(const register16_t& rhs) const noexcept { return word == rhs.word; } + [[nodiscard]] constexpr auto operator!=(const register16_t& rhs) const noexcept { return word != rhs.word; } + [[nodiscard]] constexpr auto operator<(const register16_t& rhs) const noexcept { return word < rhs.word; } + [[nodiscard]] constexpr auto operator<=(const register16_t& rhs) const noexcept { return word <= rhs.word; } + [[nodiscard]] constexpr auto operator>(const register16_t& rhs) const noexcept { return word > rhs.word; } + [[nodiscard]] constexpr auto operator>=(const register16_t& rhs) const noexcept { return word >= rhs.word; } }; - [[nodiscard]] constexpr inline auto operator==(const register16_t lhs, const register16_t rhs) noexcept { - return lhs.word == rhs.word; - } - -#if __cplusplus >= 202002L - [[nodiscard]] constexpr auto operator<=>(const register16_t lhs, const register16_t rhs) noexcept { - return lhs.word <=> rhs.word; - } -#else - - [[nodiscard]] constexpr inline auto operator!=(const register16_t lhs, const register16_t rhs) noexcept { - return lhs.word != rhs.word; - } - - [[nodiscard]] constexpr inline auto operator>(const register16_t lhs, const register16_t rhs) noexcept { - return lhs.word > rhs.word; - } - -#endif - [[nodiscard]] constexpr inline auto operator+(register16_t lhs, const register16_t rhs) noexcept { lhs += rhs; return lhs;