diff options
author | bunnei <bunneidev@gmail.com> | 2020-08-16 07:47:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-16 07:47:54 +0200 |
commit | db96034ea429cf0b0b5e2bac790392d9e2f50990 (patch) | |
tree | 9a1ed0bfc2d01d67d0f62383dbb2a1f4c9fb4eca /src/common/bit_field.h | |
parent | Merge pull request #4519 from lioncash/semi (diff) | |
parent | common/compression: Roll back std::span changes (diff) | |
download | yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar.gz yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar.bz2 yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar.lz yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar.xz yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.tar.zst yuzu-db96034ea429cf0b0b5e2bac790392d9e2f50990.zip |
Diffstat (limited to 'src/common/bit_field.h')
-rw-r--r-- | src/common/bit_field.h | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/common/bit_field.h b/src/common/bit_field.h index 26ae6c7fc..0f0661172 100644 --- a/src/common/bit_field.h +++ b/src/common/bit_field.h @@ -36,13 +36,6 @@ #include "common/common_funcs.h" #include "common/swap.h" -// Inlining -#ifdef _WIN32 -#define FORCE_INLINE __forceinline -#else -#define FORCE_INLINE inline __attribute__((always_inline)) -#endif - /* * Abstract bitfield class * @@ -142,8 +135,8 @@ public: * containing several bitfields can be assembled by formatting each of their values and ORing * the results together. */ - static constexpr FORCE_INLINE StorageType FormatValue(const T& value) { - return ((StorageType)value << position) & mask; + [[nodiscard]] static constexpr StorageType FormatValue(const T& value) { + return (static_cast<StorageType>(value) << position) & mask; } /** @@ -151,7 +144,7 @@ public: * (such as Value() or operator T), but this can be used to extract a value from a bitfield * union in a constexpr context. */ - static constexpr FORCE_INLINE T ExtractValue(const StorageType& storage) { + [[nodiscard]] static constexpr T ExtractValue(const StorageType& storage) { if constexpr (std::numeric_limits<UnderlyingType>::is_signed) { std::size_t shift = 8 * sizeof(T) - bits; return static_cast<T>(static_cast<UnderlyingType>(storage << (shift - position)) >> @@ -175,7 +168,7 @@ public: constexpr BitField(BitField&&) noexcept = default; constexpr BitField& operator=(BitField&&) noexcept = default; - constexpr operator T() const { + [[nodiscard]] constexpr operator T() const { return Value(); } @@ -183,11 +176,11 @@ public: storage = static_cast<StorageType>((storage & ~mask) | FormatValue(value)); } - constexpr T Value() const { + [[nodiscard]] constexpr T Value() const { return ExtractValue(storage); } - constexpr explicit operator bool() const { + [[nodiscard]] constexpr explicit operator bool() const { return Value() != 0; } |