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
), к которому оба могут быть преобразованы.
Семантические требования
T и U моделируют
std
::
common_reference_with
<
T, U
>
только если, при заданных
сохраняющих равенство
выражениях
t1
,
t2
,
u1
и
u2
таких, что
decltype
(
(
t1
)
)
и
decltype
(
(
t2
)
)
оба являются
T
и
decltype
(
(
u1
)
)
и
decltype
(
(
u2
)
)
оба являются
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)
|
определяет общий тип для группы типов
(шаблон класса) |