std:: convertible_to
|
定義先ヘッダ
<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
(
)
が
equality-preserving
である場合にのみモデル化される。
-
以下のいずれかの場合:
-
Toがオブジェクト型でも参照型でもない、または - static_cast < To > ( fun ( ) ) が [ ] ( ) - > To { return fun ( ) ; } ( ) と等しく、かつ
-
-
以下のいずれかが真である:
- std:: add_rvalue_reference_t < From > がオブジェクト参照型ではない、または
- std:: add_rvalue_reference_t < From > が非const修飾型への右辺値参照であり、かつ上記いずれかの式の実行後、 fun ( ) によって参照されるオブジェクトの結果状態が有効だが未規定である、または
- fun ( ) によって参照されるオブジェクトが上記いずれの式によっても変更されない。
等価性保存
標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。
参考文献
- 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)
|
型が他の型に変換可能かどうかをチェックする
(クラステンプレート) |