move
Bezpodmínečně přetypuje svůj argument na odkaz hodnoty rvalue a značí, že ji lze přesunout, pokud je pro její typ přesunutí povoleno.
template<class Type>
typename remove_reference<Type>::type&& move(Type&& Arg) noexcept;
Parametry
Parametr |
Popis |
---|---|
Type |
Typ odvozený od typu argumentu předaného v Arg společně s pravidly pro sbalení odkazu. |
Arg |
Argument, který chcete přetypovat.Ačkoli se typ Arg jeví jako zadaný jako odkaz hodnoty rvalue, move také přijímá argumenty hodnoty lvalue, protože odkazy lvalue se mohou vázat na odkazy rvalue. |
Vrácená hodnota
Arg jako odkaz rvalue, ať už je jeho typ typem odkazu, či nikoli.
Poznámky
Argument šablony Type není určen k explicitnímu určení, ale k odvození od typu hodnoty předané v Arg.Typ Type je dále upraven podle pravidel sbalení odkazů.
move nepřesune svůj argument.Místo toho bezpodmínečným přetypováním svého argumentu, což může být hodnota lvalue, na odkaz rvalue povolí kompilátorovi následně přesunout, spíše než zkopírovat, hodnotu předanou v Arg, pokud je přesun pro její typ povolen.Pokud pro daný typ není povolen přesun, hodnota se zkopíruje.
Pokud je hodnota předaná v Arg hodnota, tedy má název nebo lze převzít její adresu, po provedení přesunutí je neplatná.Po přesunutí neodkazujte na hodnotu předanou v Arg jejím názvem ani adresou.
Požadavky
Hlavička: <utility>
Obor názvů: std