boolean-testable
|
template
<
class
B
>
concept __boolean_testable_impl = std:: convertible_to < B, bool > ; |
(1) |
(C++20以降)
( 説明専用* ) |
|
template
<
class
B
>
concept boolean
-
testable
=
|
(2) |
(C++20以降)
( 説明専用* ) |
説明専用コンセプト
boolean-testable
は、
bool
に変換可能で、論理演算子が通常の振る舞い(
短絡評価
を含む)を示す式の要件を定義します。これは、2つの異なる
boolean-testable
型に対しても同様に適用されます。
形式的には、説明専用コンセプト__boolean_testable_implをモデル化するためには、その型はメンバーoperator&&およびoperator||を定義してはならず、また実引数依存の名前検索によって可視となる非メンバーの有効なoperator&&およびoperator||が存在してはならない。さらに、式eがdecltype((e))がBとなる場合、boolean-testableはbool(e) == !bool(!e)が成り立つ場合にのみモデル化される。
等価性保存
標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。
注記
boolean-testable
型の例には、
bool
、
std::true_type
、
std::
bitset
<
N
>
::
reference
、および
int
*
が含まれます。
参考文献
- C++23規格 (ISO/IEC 14882:2024):
-
- 18.5.2 ブーリアン試験可能性 [concept.booleantestable]
- C++20規格 (ISO/IEC 14882:2020):
-
- 18.5.2 ブーリアン試験可能性 [concept.booleantestable]