Namespaces
Variants

std:: common_with

From cppreference.net
Определено в заголовочном файле <concepts>
(начиная с 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 ,

Другими словами, преобразование к общему типу должно сохранять равенство .

Сохранение равенства

Выражения, объявленные в requires выражениях концепций стандартной библиотеки, должны быть equality-preserving (если не указано иное).

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2024):
  • 18.4.6 Концепт common_with [concept.common]
  • Стандарт C++20 (ISO/IEC 14882:2020):
  • 18.4.6 Концепт common_with [concept.common]

Смотрите также

определяет общий тип группы типов
(шаблон класса)
определяет общий ссылочный тип группы типов
(шаблон класса)
указывает, что два типа имеют общий ссылочный тип
(концепт)