C++ 概念: BitmaskType

来自cppreference.com
< cpp‎ | concept

定义了一种类型,它可以被用来表示一组常数值或这些值的任何组合。这种特质的典型实现是整数类型,std::bitset,或枚举(范围和无作用域)额外的运算符重载.
原文:
Defines a type that can be used to represent a set of constant values or any combination of those values. This trait is typically implemented by integer types, std::bitset, or enumerations (scoped and unscoped) with additional operator overloads.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 要求

的位掩码类型支持有限数量的位掩码的元素,这是不同的值的位掩码类型,例如,对于任何一对Ci和Cj,Ci & Ci != 0Ci & Cj == 0.
原文:
The bitmask type supports a finite number of bitmask elements, which are distinct values of the bitmask type, such that, for any pair Ci and Cj, Ci & Ci != 0 and Ci & Cj == 0.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
按位运算符operator&operator|operator^operator~operator&=operator|=,并operator^=定义的位掩码类型的值,并有相应的内置运营商无符号整数相同的语义,如果是不同的整数位掩码元素两个权力.
原文:
The bitwise operators operator&, operator|, operator^, operator~, operator&=, operator|=, and operator^= are defined for values of the bitmask type and have the same semantics as the corresponding built-in operators on unsigned integers would have if the bitmask elements were the distinct integer powers of two.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
下面的表达式是良好的,任何BitsetType十
原文:
The following expressions are well-formed and have the following meaning for any BitsetType X
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
X |= Y
设置对象的X值Y
原文:
sets the value Y in the object X
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
X &= ~Y
清除对象的X值Y
原文:
clears the value Y in the object X
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
X&Y != 0
表示的值Y被设置在对象的X
原文:
indicates that the value Y is set in the object X
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
具有以下涵义。 的每个representible位掩码元素被定义作为constexpr位掩码类型值.
原文:
Each representible bitmask element is defined as a constexpr value of the bitmask type.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 用法

以下的标准库,能满足不同BitmaskType
原文:
The following standard library types satisfy BitmaskType:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • std::ctype_base::mask
  • std::ios_base::fmtflags
  • std::ios_base::iostate
  • std::ios_base::openmode
  • std::regex_traits::char_class_type
  • std::regex_constants::syntax_option_type
  • std::regex_constants::match_flag_type
  • std::launch,
依赖于一些特定的实施方案(例如int n = std::ios_base::hex),代码是不可移植的,因为std::ios_base::fmtflags不一定是隐式转换为int.
原文:
Code that relies on some particular implementation option (e.g. int n = std::ios_base::hex), is nonportable because std::ios_base::fmtflags is not necessarily implicitly convertible to int.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里