std::experimental::ranges:: CommonReference
|
Definido en el encabezado
<experimental/ranges/concepts>
|
||
|
template
<
class
T,
class
U
>
concept
bool
CommonReference
=
|
(ranges TS) | |
El concepto
CommonReference<T, U>
especifica que dos tipos
T
y
U
comparten un
tipo de referencia común
(calculado por
ranges::common_reference_t
) al cual ambos pueden convertirse.
CommonReference<T, U>
se satisface solo si, dadas las expresiones
t
y
u
tales que
decltype
(
(
t
)
)
es
T
y
decltype
(
(
u
)
)
es
U
,
-
ranges::
common_reference_t
<
T, U
>
(
t
)
es igual a
ranges::
common_reference_t
<
T, U
>
(
t
)
si y solo si
tes una expresión que preserva la igualdad; y -
ranges::
common_reference_t
<
T, U
>
(
u
)
es igual a
ranges::
common_reference_t
<
T, U
>
(
u
)
si y solo si
ues una expresión que preserva la igualdad.
En otras palabras, la conversión al tipo de referencia común no debe alterar la propiedad de preservación de igualdad de la expresión original.
Preservación de la igualdad
Una expresión es equality preserving si produce 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 los hay).
Toda expresión que deba preservar la igualdad debe además ser estable : dos evaluaciones de dicha expresión con los mismos objetos de entrada deben producir salidas iguales, a menos que exista una modificación explícita e intermedia de esos objetos de entrada.
Véase también
|
determina el tipo de referencia común de un conjunto de tipos
(plantilla de clase) |
|
|
especifica que dos tipos comparten un tipo común
(concepto) |
|
|
determina el tipo común de un conjunto de tipos
(plantilla de clase) |