std::boolean
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <concepts> で定義
|
||
template<class B> concept boolean = std::movable<std::remove_cvref_t<B>> && requires(const std::remove_reference_t<B>& b1, const std::remove_reference_t<B>& b2, const bool a) { { b1 } -> std::convertible_to<bool>; { !b1 } -> std::convertible_to<bool>; { b1 && b2 } -> std::same_as<bool>; { b1 && a } -> std::same_as<bool>; { a && b2 } -> std::same_as<bool>; { b1 || b2 } -> std::same_as<bool>; { b1 || a } -> std::same_as<bool>; { a || b2 } -> std::same_as<bool>; { b1 == b2 } -> std::convertible_to<bool>; { b1 == a } -> std::convertible_to<bool>; { a == b2 } -> std::convertible_to<bool>; { b1 != b2 } -> std::convertible_to<bool>; { b1 != a } -> std::convertible_to<bool>; { a != b2 } -> std::convertible_to<bool>; }; |
(C++20以上) | |
コンセプト boolean<B> はブーリアンの文脈で使用可能な型のための要件を指定します。 boolean が満たされるためには、論理演算子が通常の動作 (短絡評価を含む) を持たなければなりません。 より正確には、