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
(
)
是
保等性
的,
-
要么
-
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 标准 (ISO/IEC 14882:2020):
-
-
18.4.4 概念
convertible_to[concept.convertible]
-
18.4.4 概念
参见
|
(C++11)
(C++20)
|
检查一个类型是否能转换为另一个类型
(类模板) |