move
Esegue il cast in modo condizionale del relativo argomento a un riferimento rvalue e segnala pertanto che può essere spostato se il relativo tipo è abilitato allo spostamento.
template<class Type>
typename remove_reference<Type>::type&& move(Type&& Arg) noexcept;
Parametri
Parametro |
Descrizione |
---|---|
Type |
Tipo dedotto dal tipo dell'argomento passato in Arg, insieme alle regole di compressione dei riferimenti. |
Arg |
Argomento di cui eseguire il cast. Anche il tipo di Arg sembra essere specificato come riferimento rvalue, move accetta anche argomenti lvalue poiché tali riferimenti possono essere associati ai riferimenti rvalue. |
Valore restituito
Arg come riferimento rvalue, indipendentemente dal fatto che il relativo tipo sia un tipo di riferimento.
Note
L'argomento di modello Type non deve essere specificato in modo esplicito, ma dedotto dal tipo del valore passato in Arg. Il tipo di Type viene ulteriormente modificato in base alle regole di compressione dei riferimenti.
move non sposta il relativo argomento. L'esecuzione invece del cast in modo non condizionale del relativo argomento, che potrebbe essere un lvalue, a un riferimento rvalue, consente al compilatore di spostarsi successivamente anziché copiare il valore passato in Arg se il relativo tipo è abilitato allo spostamento. Se il relativo tipo non è abilitato allo spostamento, viene copiato.
Se il valore passato in Arg è un lvalue, ovvero dispone di un nome o il relativo indirizzo può essere accettato, viene invalidato quando si verifica lo spostamento. Non fare riferimento al valore passato in Arg in base al relativo nome o indirizzo dopo che è stato spostato.
Requisiti
Intestazione: <utility>
Spazio dei nomi: std