Задать вопрос

Можно ли избежать такой конструкции?

Есть некая структура m, для нее и ссылки на нее реализуются арифмитические операции.
Можно ли избежать такого:
let a = m::new(...);
let b = m::new(...);
let c = &a + &(&a + &b);

То есть чтобы не писать ссылки, но при этом не перемещалось и не копировалось.
let c = a + (a + b); //Без перемещений
  • Вопрос задан
  • 281 просмотр
Подписаться 3 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    RUST
    4 месяца
    Далее
  • OTUS
    Rust Developer. Professional
    5 месяцев
    Далее
  • OTUS
    Разработка децентрализованных приложений
    5 месяцев
    Далее
Решения вопроса 1
vabka
@vabka Куратор тега Rust
Чтобы было чуть проще, тебе нужно реализовать оператор для:
1. m + m
2. &m + &m
3. m + &m
4. &m + m

https://stackoverflow.com/questions/38811387/how-t...

Но совсем избавиться от & не получится - компилятор в любом случае должен знать, когда ты хочешь копирование/move, а когда ты хочешь заимствовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы