boolean-testable
|
template
<
class
B
>
concept __boolean_testable_impl = std:: convertible_to < B, bool > ; |
(1) |
(depuis C++20)
( exposition uniquement* ) |
|
template
<
class
B
>
concept boolean
-
testable
=
|
(2) |
(depuis C++20)
( exposition uniquement* ) |
Le concept d'exposition uniquement
boolean-testable
spécifie les exigences pour les expressions qui sont convertibles en
bool
et pour lesquelles les opérateurs logiques ont le comportement habituel (incluant
l'évaluation en court-circuit
), même pour deux types
boolean-testable
différents.
Formellement, pour modéliser le concept d'exposition uniquement
__boolean_testable_impl
, le type ne doit pas définir de membre
operator
&&
et
operator
||
, et aucun opérateur non-membre viable
operator
&&
et
operator
||
ne doit être visible par
la recherche dépendante des arguments
. De plus, étant donné une expression
e
telle que
decltype
(
(
e
)
)
est
B
,
boolean-testable
est modélisé seulement si
bool
(
e
)
==
!
bool
(
!
e
)
.
Préservation de l'égalité
Les expressions déclarées dans les requires expressions des concepts de la bibliothèque standard doivent être equality-preserving (sauf indication contraire).
Notes
Exemples de types
boolean-testable
incluent
bool
,
std::true_type
,
std::
bitset
<
N
>
::
reference
, et
int
*
.
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
- 18.5.2 Testabilité booléenne [concept.booleantestable]
- Norme C++20 (ISO/CEI 14882:2020) :
-
- 18.5.2 Testabilité booléenne [concept.booleantestable]