Espacios de nombres
Variantes
Acciones

std::common_reference_with

De cppreference.com
< cpp‎ | concepts
Definido en el archivo de encabezado <concepts>
template<typename T, typename 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 común de referencia (computado por std::common_reference_t) al que ambos pueden ser convertidos.

T y U modelan common_reference_with<T, U> solamente si, dadas las expresiones conservadoras de igualdad t1, t2, u1 y u2 tales que decltype((t1)) y decltype((t2)) son ambas T y decltype((u1)) y decltype((u2)) son ambas U,

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

[editar]Conservación de la igualdad

Una expresión es conservadora de igualdad si resulta en salidas iguales dadas entradas iguales.

  • Las entradas de una expresión consisten en sus operandos.
  • Las salidas de una expresión consisten en su resultado y todos los operandos modificados por la expresión (si es que los hay).

Cada expresión que se requiere sea conservadora de igualdad, se requiere además que sea estable: dos evaluaciones de tal expresión con los mismos objetos de entrada debe tener salidas iguales si no se encuentra alguna modificación interventora de esos objetos de entrada.

[editar] Véase también

Determina el tipo común de referencia de un grupo de tipos
(plantilla de clase)[editar]
Especifica que dos tipos comparten un tipo común.
(concepto)[editar]
Deduce el tipo del resultado de una expresión aritmética mixta
(plantilla de clase)[editar]
close