Browse Source
Merge pull request #7695 from Morph1984/is-pow2
common: bit_util: Add IsPow2 helper function
pull/15/merge
bunnei
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
6 additions and
0 deletions
-
src/common/bit_util.h
|
|
|
@ -45,6 +45,12 @@ template <typename T> |
|
|
|
return static_cast<u32>(log2_f + static_cast<u64>((value ^ (1ULL << log2_f)) != 0ULL)); |
|
|
|
} |
|
|
|
|
|
|
|
template <typename T> |
|
|
|
requires std::is_unsigned_v<T> |
|
|
|
[[nodiscard]] constexpr bool IsPow2(T value) { |
|
|
|
return std::has_single_bit(value); |
|
|
|
} |
|
|
|
|
|
|
|
template <typename T> |
|
|
|
requires std::is_integral_v<T> |
|
|
|
[[nodiscard]] T NextPow2(T value) { |
|
|
|
|