std::common_reference_with — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(начиная с C++20) | |
Концепт common_reference_with<T, U> указывает, что два типа T и U совместно используют общий ссылочный тип (вычисленный с помощью std::common_reference_t), в который оба могут быть преобразованы.
Семантические требования
T и U моделируют 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.
Другими словами, преобразование в общий ссылочный тип должно сохранять равенство.
Сохранение равенства
Выражения, объявленные в выражениях requires концептов стандартной библиотеки, должны сохранять равенство (если не указано иное).