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