Udostępnij za pośrednictwem


move

Bezwarunkowo rzutuje swój argument na odwołanie rvalue, a tym samym sygnalizuje, że może być przeniesione, jeśli jego typ umożliwia przenoszenie.

template<class Type>
    typename remove_reference<Type>::type&& move(Type&& Arg) noexcept;

Parametry

Parametr

Opis

Type

Typ wywnioskowany z typu argumentu przekazanego w Arg, wraz z regułami zwijania odwołania.

Arg

Argument do rzutowania.Chociaż typ Arg wydaje się być określony jako odwołanie rvalue, move również akceptuje argumenty lvalue, ponieważ odwołania lvalue można powiązać z odwołaniami rvalue.

Wartość zwracana

Arg jako odwołanie rvalue, niezależnie od tego, czy jego typ jest typem odwołania.

Uwagi

Argument szablonu Type nie ma być jawnie określony, ale wnioskowany z typu wartości przekazanej w Arg.Typ Type jest następnie korygowany według reguł zwijania odniesienia.

move nie przenosi swojego argumentu.Zamiast tego, rzutując bezwarunkowo swój argument — który może być lvalue — na odwołanie rvalue, pozwala następnie kompilatorowi przenieść, zamiast kopiować, wartość przekazywaną w Arg, jeśli jego typ umożliwia przenoszenie.Jeżeli jego typ nie umożliwia przenoszenia, jest on zamiast tego kopiowany.

Jeśli wartość przekazywana w Arg to lvalue — to znaczy, że ma on nazwę lub można pobrać jego adres — zostaje unieważniony po przeniesieniu.Nie odwołuj się do wartości przekazanej w Arg przez jego nazwę lub adres po przeniesieniu.

Wymagania

Nagłówek: <utility>

Przestrzeń nazw: std

Zobacz też

Informacje

<utility>

Lvalues i Rvalues