boolean-testable
|
template
<
class
B
>
concept __boolean_testable_impl = std:: convertible_to < B, bool > ; |
(1) |
(desde C++20)
( solo para exposición* ) |
|
template
<
class
B
>
concept boolean
-
testable
=
|
(2) |
(desde C++20)
( solo para exposición* ) |
El concepto de solo exposición
boolean-testable
especifica los requisitos para expresiones que son convertibles a
bool
y para las cuales los operadores lógicos tienen el comportamiento usual (incluyendo
evaluación de cortocircuito
), incluso para dos tipos diferentes de
boolean-testable
.
Formalmente, para modelar el concepto de solo exposición
__boolean_testable_impl
, el tipo no debe definir ningún miembro
operator
&&
y
operator
||
, y ningún operador no-miembro viable
operator
&&
y
operator
||
puede ser visible mediante
búsqueda dependiente de argumentos
. Adicionalmente, dada una expresión
e
tal que
decltype
(
(
e
)
)
es
B
,
boolean-testable
se modela solo si
bool
(
e
)
==
!
bool
(
!
e
)
.
Preservación de la igualdad
Las expresiones declaradas en las requires expressions de los conceptos de la biblioteca estándar deben ser equality-preserving (excepto cuando se indique lo contrario).
Notas
Ejemplos de tipos
boolean-testable
incluyen
bool
,
std::true_type
,
std::
bitset
<
N
>
::
reference
, e
int
*
.
Referencias
- Estándar C++23 (ISO/IEC 14882:2024):
-
- 18.5.2 Capacidad de prueba booleana [concept.booleantestable]
- Estándar C++20 (ISO/IEC 14882:2020):
-
- 18.5.2 Boolean testability [concept.booleantestable]