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