Biblioteca de utilidades de C ++ - función de movimiento

Descripción

Devuelve una referencia rvalue a arg.

Declaración

A continuación se muestra la declaración de la función std :: move.

template <class T>
typename remove_reference<T>::type&& move (T&& arg) noexcept;

C ++ 11

template <class T>
typename remove_reference<T>::type&& move (T&& arg) noexcept;

Parámetros

arg - Es un objeto.

Valor devuelto

Devuelve una referencia rvalue que se refiere a arg.

Excepciones

Basic guarantee - Esta función nunca arroja excepciones.

Carreras de datos

Llamar a esta función no introduce carreras de datos.

Ejemplo

En el siguiente ejemplo se explica la función std :: move.

#include <utility>
#include <iostream>
#include <vector>
#include <string>

int main () {
   std::string foo = "It is a foo string";
   std::string bar = "It is a bar string";
   std::vector<std::string> myvector;

   myvector.push_back (foo);
   myvector.push_back (std::move(bar));

   std::cout << "myvector contains:";
   for (std::string& x:myvector) std::cout << ' ' << x;
   std::cout << '\n';

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

myvector contains: It is a foo string It is a bar string