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/alignment.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/alignment.h')
-rw-r--r-- | src/common/alignment.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/common/alignment.h b/src/common/alignment.h index ef4d6f896..5040043de 100644 --- a/src/common/alignment.h +++ b/src/common/alignment.h @@ -9,7 +9,7 @@ namespace Common { template <typename T> -constexpr T AlignUp(T value, std::size_t size) { +[[nodiscard]] constexpr T AlignUp(T value, std::size_t size) { static_assert(std::is_unsigned_v<T>, "T must be an unsigned value."); auto mod{static_cast<T>(value % size)}; value -= mod; @@ -17,31 +17,31 @@ constexpr T AlignUp(T value, std::size_t size) { } template <typename T> -constexpr T AlignDown(T value, std::size_t size) { +[[nodiscard]] constexpr T AlignDown(T value, std::size_t size) { static_assert(std::is_unsigned_v<T>, "T must be an unsigned value."); return static_cast<T>(value - value % size); } template <typename T> -constexpr T AlignBits(T value, std::size_t align) { +[[nodiscard]] constexpr T AlignBits(T value, std::size_t align) { static_assert(std::is_unsigned_v<T>, "T must be an unsigned value."); return static_cast<T>((value + ((1ULL << align) - 1)) >> align << align); } template <typename T> -constexpr bool Is4KBAligned(T value) { +[[nodiscard]] constexpr bool Is4KBAligned(T value) { static_assert(std::is_unsigned_v<T>, "T must be an unsigned value."); return (value & 0xFFF) == 0; } template <typename T> -constexpr bool IsWordAligned(T value) { +[[nodiscard]] constexpr bool IsWordAligned(T value) { static_assert(std::is_unsigned_v<T>, "T must be an unsigned value."); return (value & 0b11) == 0; } template <typename T> -constexpr bool IsAligned(T value, std::size_t alignment) { +[[nodiscard]] constexpr bool IsAligned(T value, std::size_t alignment) { using U = typename std::make_unsigned<T>::type; const U mask = static_cast<U>(alignment - 1); return (value & mask) == 0; @@ -64,7 +64,7 @@ public: template <typename T2> constexpr AlignmentAllocator(const AlignmentAllocator<T2, Align>&) noexcept {} - T* allocate(size_type n) { + [[nodiscard]] T* allocate(size_type n) { return static_cast<T*>(::operator new (n * sizeof(T), std::align_val_t{Align})); } |