std:: common_with
|
定义于头文件
<concepts>
|
||
|
template
<
class
T,
class
U
>
concept common_with
=
|
(C++20 起) | |
概念
common_with<T, U>
规定两个类型
T
和
U
共享一个
公共类型
(通过
std::common_type_t
计算得出),两者均可转换为该类型。
目录 |
语义要求
T 和 U 满足
std
::
common_with
<
T, U
>
概念当且仅当:给定满足
相等性保持
的表达式
t1
、
t2
、
u1
和
u2
,且
decltype
(
(
t1
)
)
与
decltype
(
(
t2
)
)
均为
T
类型,
decltype
(
(
u1
)
)
与
decltype
(
(
u2
)
)
均为
U
类型时,
-
std::
common_type_t
<
T, U
>
(
t1
)
等于
std::
common_type_t
<
T, U
>
(
t2
)
当且仅当
t1等于t2;且 -
std::
common_type_t
<
T, U
>
(
u1
)
等于
std::
common_type_t
<
T, U
>
(
u2
)
当且仅当
u1等于u2。
换句话说,转换为通用类型的操作必须 保持相等性 。
等值保持性
标准库概念的 requires 表达式 中声明的表达式必须满足 等值保持 要求(除非另有说明)。
参考文献
- C++23 标准 (ISO/IEC 14882:2024):
-
-
18.4.6 概念
common_with[concept.common]
-
18.4.6 概念
- C++20 标准 (ISO/IEC 14882:2020):
-
-
18.4.6 概念
common_with[concept.common]
-
18.4.6 概念
另请参阅
|
(C++11)
|
确定一组类型的公共类型
(类模板) |
|
确定一组类型的公共引用类型
(类模板) |
|
|
(C++20)
|
指定两种类型共享公共引用类型
(概念) |