std::convertible_to
來自 cppreference.com
定義於標頭檔案 <concepts> |
||
template< class From, class To > concept convertible_to = |
(C++20 起) | |
概念 convertible_to<From, To> 指定了一個表示式,其型別和值類別與 std::declval<From>() 相同,可以隱式和顯式轉換為型別 To
,並且這兩種轉換形式產生相同的結果。
目錄 |
[編輯] 語義要求
convertible_to<From, To> 僅在以下條件滿足時才被建模:給定一個型別為 std::add_rvalue_reference_t<From>() 的函式 fun
,且表示式 fun() 是相等性保持的,
- 要麼
-
To
既不是物件型別也不是物件引用型別,或者 - static_cast<To>(fun()) 等於 []() -> To { return fun(); }(),並且
-
- 以下之一為真
- std::add_rvalue_reference_t<From> 不是物件引用型別,或者
- std::add_rvalue_reference_t<From> 是對非 const-qualified 型別的右值引用,並且在上述任一表達式之後,由 fun() 引用的物件狀態有效但未指定;或者
- 由 fun() 引用的物件未被上述任一表達式修改。
[編輯] 相等性保持
標準庫概念的 requires 表示式中宣告的表示式必須是相等性保持的(除非另有說明)。
[編輯] 參考
- C++23 標準 (ISO/IEC 14882:2024)
- 18.4.4 概念
convertible_to
[concept.convertible]
- 18.4.4 概念
- C++20 標準 (ISO/IEC 14882:2020)
- 18.4.4 概念
convertible_to
[concept.convertible]
- 18.4.4 概念
[編輯] 參見
(C++11)(C++20) |
檢查一個型別是否可以轉換為另一個型別 (類模板) |