std::experimental::ranges:: Common
|
template
<
class
T,
class
U
>
concept
bool
Common
=
|
(ranges TS) | |
概念
Common<T, U>
规定两个类型
T
和
U
共享一个
公共类型
(通过
ranges::common_type_t
计算得出),两者均可转换为该类型。
Common<T, U>
仅在满足以下条件时成立:给定表达式
t
和
u
,使得
decltype
(
(
t
)
)
为
T
且
decltype
(
(
u
)
)
为
U
,
-
ranges::
common_type_t
<
T, U
>
(
t
)
等于
ranges::
common_type_t
<
T, U
>
(
t
)
当且仅当
t是保等表达式;且 -
ranges::
common_type_t
<
T, U
>
(
u
)
等于
ranges::
common_type_t
<
T, U
>
(
u
)
当且仅当
u是保等表达式。
换言之,转换为通用类型不得改变原始表达式的保等性。
等值保持性
表达式若在给定相等输入时产生相等输出,则称其具有 等值保持性 。
- 表达式的输入由其操作数构成。
- 表达式的输出由其结果及所有被该表达式修改的操作数(如有)构成。
所有要求保持相等性的表达式必须进一步满足 稳定性 要求:对此类表达式进行两次求值时,若输入对象相同且期间未显式修改这些输入对象,则必须产生相等的输出结果。
参见
|
确定一组类型的公共类型
(类模板) |
|
|
确定一组类型的公共引用类型
(类模板) |
|
|
指定两种类型共享公共引用类型
(概念) |