工具位掩码#
- group Bitmask
函数
-
inline constexpr size_type word_index(size_type bit_index)#
返回包含指定位的字的索引。
- 参数:
bit_index – 要查询的位的索引
- 返回:
包含指定位的字的索引
-
inline constexpr size_type intra_word_index(size_type bit_index)#
返回指定位在字内的位置。
- 参数:
bit_index – 要查询的位的索引
- 返回:
指定位在字内的位置
-
inline void set_bit_unsafe(bitmask_type *bitmask, size_type bit_index)#
将指定位设置为
1
此函数不是线程安全的,即从多个线程并发地尝试更新同一字内的位会导致未定义行为。
- 参数:
bitmask – 包含要设置的位的位掩码
bit_index – 要设置的位的索引
-
inline void clear_bit_unsafe(bitmask_type *bitmask, size_type bit_index)#
将指定位设置为
0
此函数不是线程安全的,即从多个线程并发地尝试更新同一字内的位会导致未定义行为。
- 参数:
bitmask – 包含要清除的位的位掩码
bit_index – 要清除的位的索引
-
inline bool bit_is_set(bitmask_type const *bitmask, size_type bit_index)#
指示指定位是否设置为
1
- 参数:
bitmask – 包含要清除的位的位掩码
bit_index – 要测试的位的索引
- 返回:
true 指定位是
1
- 返回:
false 指定位是
0
-
inline bool bit_value_or(bitmask_type const *bitmask, size_type bit_index, bool default_value)#
类似 optional 的接口,用于检查位掩码的指定位是否已设置。
- 参数:
bitmask – 包含要清除的位的位掩码
bit_index – 要测试的位的索引
default_value – 如果
bitmask
为 nullptr 时返回的值
- 返回:
true 指定位是
1
- 返回:
false 指定位是
0
- 返回:
如果
bitmask
为 nullptr,则返回default_value
-
inline constexpr bitmask_type set_least_significant_bits(size_type n)#
返回一个位掩码字,其中设置了最低
n
个有效位。如果
n < 0
或如果n >= size_in_bits<bitmask_type>()
,则行为未定义- 参数:
n – 要设置的最低有效位的数量
- 返回:
一个设置了最低
n
个有效位的位掩码字
-
inline constexpr bitmask_type set_most_significant_bits(size_type n)#
返回一个位掩码字,其中设置了最高
n
个有效位。如果
n < 0
或如果n >= size_in_bits<bitmask_type>()
,则行为未定义- 参数:
n – 要设置的最高有效位的数量
- 返回:
一个设置了最高
n
个有效位的位掩码字
-
inline constexpr size_type word_index(size_type bit_index)#