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