Namespaces
Variants

std::experimental::ranges:: MoveConstructible

From cppreference.net
Definido en el encabezado <experimental/ranges/concepts>
template < class T >

concept bool MoveConstructible =

Constructible < T, T > && ConvertibleTo < T, T > ;
(ranges TS)

El concepto MoveConstructible se satisface si T es un tipo de referencia, o si es un tipo de objeto donde un objeto de ese tipo puede construirse a partir de un valor R de ese tipo en contextos de inicialización directa y copia, con la semántica habitual.

Más precisamente, si T es un tipo de objeto, entonces MoveConstructible<T> se satisface solo si dado

  • rv , un valor r de tipo T , y
  • u2 , un objeto distinto de tipo T igual a rv ,

lo siguiente es cierto:

  • Después de la definición T u = rv ; , u es igual a u2 ;
  • T{rv} es igual a u2 ; y
  • Si T no está calificado como const, entonces el estado resultante de rv (después de que la definición/expresión se evalúe en cualquiera de los puntos anteriores) es válido pero no especificado; de lo contrario, permanece sin cambios.

Véase también

verifica si un tipo puede ser construido desde una referencia a valor temporal
(plantilla de clase)