std::convertible_to
From cppreference.com
| ヘッダ <concepts> で定義 |
||
| template< class From, class To > concept convertible_to = |
(C++20以降) | |
コンセプト convertible_to<From, To> は、std::declval<From>() と同じ型と値カテゴリを持つ式が、型 To に暗黙的および明示的に変換でき、2つの形式の変換が等しい結果を生成することを指定します。
目次 |
[編集] 意味要件
convertible_to<From, To> がモデル化されるのは、fun() という式が等価性保持であるような、型std::add_rvalue_reference_t<From>()の関数funが与えられた場合に限ります。
- いずれか
-
Toがオブジェクト型でも参照型でもない場合、または - static_cast<To>(fun()) が []() -> To { return fun(); }() と等しく、かつ
-
- 以下のいずれかが真である
- std::add_rvalue_reference_t<From> が参照型ではない、または
- std::add_rvalue_reference_t<From> が非 const 修飾型への右辺値参照であり、上記のいずれかの式の後、fun() が参照するオブジェクトの状態が有効だが未指定である場合、または
- fun() が参照するオブジェクトが、上記のいずれの式によっても変更されない場合。
[編集] 等価性保持
標準ライブラリのコンセプトのrequires式で宣言された式は、(特に明記されていない限り)等価性保持である必要があります。
[編集] 参照
- C++23標準 (ISO/IEC 14882:2024)
- 18.4.4 コンセプト
convertible_to[concept.convertible]
- 18.4.4 コンセプト
- C++20 standard (ISO/IEC 14882:2020)
- 18.4.4 コンセプト
convertible_to[concept.convertible]
- 18.4.4 コンセプト
[編集] 関連項目
| (C++11)(C++20) |
ある型が他の型に変換可能であるかをチェックする (クラステンプレート) |