boolean-testable
來自 cppreference.com
< cpp | 概念 (concepts)
template< class B > concept __boolean_testable_impl = std::convertible_to<B, bool>; |
(1) | (C++20 起) (僅作說明*) |
template< class B > concept boolean-testable = |
(2) | (C++20 起) (僅作說明*) |
僅用於說明的 concept boolean-testable
指定了可轉換為 bool 且邏輯運算子行為正常的表示式的要求(包括短路求值),即使是對於兩種不同的 boolean-testable
型別。
形式上,為了符合僅用於說明的 concept __boolean_testable_impl
,該型別不得定義任何成員 operator&& 和 operator||,並且不得有任何透過實參依賴查詢可見的非成員 operator&& 和 operator||。此外,給定一個表示式 e
,其 decltype((e)) 為 B
,僅當 bool(e) == !bool(!e) 時才符合 boolean-testable
。
[編輯] 相等性保持
標準庫概念的 requires 表示式中宣告的表示式必須是相等性保持的(除非另有說明)。
[編輯] 註解
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]