Como o Rust fornece semântica de movimentação?

oSite do idioma Rust as reivindicações movem a semântica como um dos recursos do idioma. Mas não vejo como a semântica de movimentos é implementada no Rust.

As caixas de ferrugem são o único local em que a semântica de movimentação é usada.

let x = Box::new(5);
let y: Box<i32> = x; // x is 'moved'

O código Rust acima pode ser escrito em C ++ como

auto x = std::make_unique<int>();
auto y = std::move(x); // Note the explicit move

Tanto quanto eu sei (me corrija se eu estiver errado),

Rust não tem construtores, muito menos move construtores.Não há suporte para referências de rvalue.Não há como criar sobrecargas de funções com parâmetros rvalue.

Como o Rust fornece semântica de movimentação?

questionAnswers(2)

yourAnswerToTheQuestion