Можно ли сделать тип только подвижным, а не копируемым?
Примечание редактора: этот вопрос был задан до Rust 1.0, и некоторые из утверждений в вопросе не обязательно верны в Rust 1.0. Некоторые ответы были обновлены с учетом обеих версий.
У меня есть такая структура
struct Triplet {
one: i32,
two: i32,
three: i32,
}
Если я передаю это функции, она неявно копируется. Теперь иногда я читаю, что некоторые значения не могут быть скопированы и поэтому должны быть перемещены.
Будет ли возможно сделать эту структуруTriplet
без копируемого? Например, было бы возможно реализовать черту, которая сделала быTriplet
не копируемый и, следовательно, «подвижный»?
Я где-то читал, что нужно реализоватьClone
свойство копировать то, что не является неявно копируемым, но я никогда не читал об обратном, то есть о чем-то, что неявно копируемо, и о том, что оно не подлежит копированию, так что оно перемещается вместо этого.
Имеет ли это хоть какой-то смысл?