diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-11-07 17:03:01 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-11-07 17:03:01 +0100 |
| commit | 45a2008aa6c7c43da6182cb3d6c96b7ab86902ac (patch) | |
| tree | adb2e15dd17fc800d88e8fcc087b2a6a2f760b63 /src/common/fixed_point.h | |
| parent | 8f6e0aa2cb9ef2a3e85c5e51a699f98092d30884 (diff) | |
[common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/290
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/common/fixed_point.h')
| -rw-r--r-- | src/common/fixed_point.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/common/fixed_point.h b/src/common/fixed_point.h index b0f3ae2ccb..c52c870812 100644 --- a/src/common/fixed_point.h +++ b/src/common/fixed_point.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: 2015 Evan Teran // SPDX-License-Identifier: MIT @@ -16,6 +19,10 @@ namespace Common { +// No equivalent for "std::arithmetic" in the stdlib +template <typename T> +concept IsArithmetic = std::is_arithmetic_v<T>; + template <size_t I, size_t F> class FixedPoint; @@ -392,13 +399,13 @@ public: // binary math operators, effects underlying bit pattern since these return *this; } - template <IsIntegral Integer> + template <std::integral Integer> constexpr FixedPoint& operator>>=(Integer n) { data_ >>= n; return *this; } - template <IsIntegral Integer> + template <std::integral Integer> constexpr FixedPoint& operator<<=(Integer n) { data_ <<= n; return *this; @@ -587,12 +594,12 @@ constexpr FixedPoint<I, F> operator/(Number lhs, FixedPoint<I, F> rhs) { } // shift operators -template <size_t I, size_t F, IsIntegral Integer> +template <size_t I, size_t F, std::integral Integer> constexpr FixedPoint<I, F> operator<<(FixedPoint<I, F> lhs, Integer rhs) { lhs <<= rhs; return lhs; } -template <size_t I, size_t F, IsIntegral Integer> +template <size_t I, size_t F, std::integral Integer> constexpr FixedPoint<I, F> operator>>(FixedPoint<I, F> lhs, Integer rhs) { lhs >>= rhs; return lhs; |
