boolean-testable
|
template
<
class
B
>
concept __boolean_testable_impl = std:: convertible_to < B, bool > ; |
(1) |
(seit C++20)
( Nur zur Darstellung* ) |
|
template
<
class
B
>
concept boolean
-
testable
=
|
(2) |
(seit C++20)
( Nur zur Darstellung* ) |
Das exposition-only-Konzept
boolean-testable
spezifiziert die Anforderungen für Ausdrücke, die in
bool
konvertierbar sind und für welche die logischen Operatoren das übliche Verhalten aufweisen (einschließlich
Short-Circuit-Auswertung
), selbst für zwei verschiedene
boolean-testable
Typen.
Formal muss zur Modellierung des exposition-only-Konzepts
__boolean_testable_impl
der Typ keine Member-
operator
&&
und
operator
||
definieren, und es dürfen keine viable non-member
operator
&&
und
operator
||
durch
argument-dependent lookup
sichtbar sein. Zusätzlich, gegeben einen Ausdruck
e
für den
decltype
(
(
e
)
)
den Typ
B
hat, wird
boolean-testable
nur dann modelliert, wenn
bool
(
e
)
==
!
bool
(
!
e
)
.
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Hinweise
Beispiele für
boolean-testable
Typen umfassen
bool
,
std::true_type
,
std::
bitset
<
N
>
::
reference
, und
int
*
.
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
- 18.5.2 Boolesche Prüfbarkeit [concept.booleantestable]
- C++20-Standard (ISO/IEC 14882:2020):
-
- 18.5.2 Boolesche Prüfbarkeit [concept.booleantestable]