тем что нельзя пользоваться посторонними temp переменными можно только делать swap 2м переменным реальным а не temp
В чем разница реальной и temp?
Есть MyTable объект , у него где то большой буфер есть r1, r2 r1 некая объект MyRow ссылается на record №1 r2 некая объект MyRow ссылается на record №2 но если определить где-то MyRow tmp = r1; этот tmp будет портить всю картину
Пока совершенно не очевидно, каким образом move (не copy, который может быть удален тут) что-то портит
да move сам по себе не портит просто они считают что tmp - это посторонний объект в который можно записать данные а на самом деле - он не посторонний, он затирает реальный чей-то буфер
Хорошо бы различать аллокатор и контейнер
Какой-то ужас с владением и дизайном
Непонятно, что портит, это ж просто view. > У меня может быть несколько объектов value_type разных, но ссылающихся на одно место в таблице.
Попытаюсь угадать: часть операторов перегружена, чтобы имитировать логику owned типа (копирование данных при копировании ссылки на них или что-то такое)
Ванга мод, такое выражение не встречал. Но в идея уловлена верно. Есть MyTable который является MyVar При этом могут быть простые скалярные MyVar's MyRow от MyTable - от тоже является MyVar
https://en.cppreference.com/w/cpp/language/rule_of_three
Обсуждают сегодня