C++ Utility Library - move Function
Description
It returns an rvalue reference to arg.
Declaration
Following is the declaration for std::move function.
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;
Parameters
arg − It is an object.
Return Value
It returns an rvalue reference that refers to arg.
Exceptions
Basic guarantee − This function never throws exceptions.
Data races
Calling this function introduces no data races.
Example
In below example explains about std::move function.
#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;
}
Let us compile and run the above program, this will produce the following result −
myvector contains: It is a foo string It is a bar string
utility.htm