瀏覽代碼

bit_util: Add `bit` utility function

Extracts a singular bit, as a bool, from the specified compile-time index.
Wunkolo 4 年之前
父節點
當前提交
add2cfcb96
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      src/common/bit_util.h

+ 7 - 0
src/common/bit_util.h

@@ -57,4 +57,11 @@ requires std::is_integral_v<T>
     return static_cast<T>(1ULL << ((8U * sizeof(T)) - std::countl_zero(value - 1U)));
 }
 
+template <size_t bit_index, typename T>
+requires std::is_integral_v<T>
+[[nodiscard]] constexpr bool Bit(const T value) {
+    static_assert(bit_index < BitSize<T>(), "bit_index must be smaller than size of T");
+    return ((value >> bit_index) & T(1)) == T(1);
+}
+
 } // namespace Common