Namespaces
Variants

std:: common_reference_with

From cppreference.net
Definido en el encabezado <concepts>
template < class T, class U >

concept common_reference_with =
std:: same_as < std:: common_reference_t < T, U > , std:: common_reference_t < U, T >> &&
std:: convertible_to < T, std:: common_reference_t < T, U >> &&

std:: convertible_to < U, std:: common_reference_t < T, U >> ;
(desde C++20)

El concepto common_reference_with<T, U> especifica que dos tipos T y U comparten un tipo de referencia común (calculado por std::common_reference_t ) al cual ambos pueden ser convertidos.

Requisitos semánticos

T y U modelan std :: common_reference_with < T, U > solo si, dadas las expresiones que preservan la igualdad t1 , t2 , u1 y u2 tales que decltype ( ( t1 ) ) y decltype ( ( t2 ) ) son ambos T y decltype ( ( u1 ) ) y decltype ( ( u2 ) ) son ambos U ,

En otras palabras, la conversión al tipo de referencia común debe preservar la igualdad .

Referencias

  • Estándar C++23 (ISO/IEC 14882:2024):
  • 18.4.5 Concepto common_reference_with [concept.commonref]
  • Estándar C++20 (ISO/IEC 14882:2020):
  • 18.4.5 Concepto common_reference_with [concept.commonref]

Véase también

determina el tipo de referencia común de un grupo de tipos
(plantilla de clase)
especifica que dos tipos comparten un tipo común
(concepto)
determina el tipo común de un grupo de tipos
(plantilla de clase)