Size: a a a

2021 January 30

AF

Aidar Fattakhov in pro.cxx
Ну swap у вас тоже вероятно неправильный
источник

SS

Sergey Skvortsov in pro.cxx
Sergey Krasnitsky
В том и вся фишка, move не сделан криво. Я другой move не могу дать.  Это согласно дизайна моего контейнера. У меня может быть несколько объектов value_type разных, но ссылающихся на одно место в таблице. Это исходное условие.
А они не пользуются swap почему-то. А без перегрузки swap эту вещь похоже не решить.
Что делает такой move?
источник

АК

Александр Караев... in pro.cxx
Sergey Krasnitsky
Он не может переместиться, т.к. его данные сидят в другом месте. Я их не могу оттуда выжрать и сказать - тут дырка
В таком случае мув конструкторы должны были быть удаленными и сорт не скомпилировался бы
источник

AF

Aidar Fattakhov in pro.cxx
Элемент не должен ничего знать о контейнере
источник

AF

Aidar Fattakhov in pro.cxx
Для этого есть абстракция node
источник

SK

Sergey Krasnitsky in pro.cxx
Aidar Fattakhov
В чем разница реальной и temp?
Есть MyTable объект , у него где то большой буфер
есть r1, r2
r1 некая объект MyRow ссылается на record  №1
r2 некая объект MyRow ссылается на record  №2

но если определить где-то
MyRow  tmp = r1;

этот tmp будет портить всю картину
источник

DS

Dmitry Sokolov in pro.cxx
Кстати, судя по тому что "везде получилась первая строка", конструктор/оператор присваивания получается по разному работают.
источник

SK

Sergey Krasnitsky in pro.cxx
всё из-за этого MyRow  tmp = r1;
источник

SS

Sergey Skvortsov in pro.cxx
Sergey Krasnitsky
Есть MyTable объект , у него где то большой буфер
есть r1, r2
r1 некая объект MyRow ссылается на record  №1
r2 некая объект MyRow ссылается на record  №2

но если определить где-то
MyRow  tmp = r1;

этот tmp будет портить всю картину
Пока совершенно не очевидно, каким образом move (не copy, который может быть удален тут) что-то портит
источник

AF

Aidar Fattakhov in pro.cxx
Почему это должно что-то портить?
источник

AF

Aidar Fattakhov in pro.cxx
Пусть Operator=(мув) вызывает swap, что это испортит?
источник

AF

Aidar Fattakhov in pro.cxx
Копирование очевидно нужно удалить
источник

SK

Sergey Krasnitsky in pro.cxx
Sergey Skvortsov
Пока совершенно не очевидно, каким образом move (не copy, который может быть удален тут) что-то портит
да move сам по себе не портит
просто они считают что tmp - это посторонний объект в который можно записать данные
а на самом деле - он не посторонний, он затирает реальный чей-то буфер
источник

AF

Aidar Fattakhov in pro.cxx
Sergey Krasnitsky
да move сам по себе не портит
просто они считают что tmp - это посторонний объект в который можно записать данные
а на самом деле - он не посторонний, он затирает реальный чей-то буфер
Хорошо бы различать аллокатор и контейнер
источник

АК

Александр Караев... in pro.cxx
Sergey Krasnitsky
да move сам по себе не портит
просто они считают что tmp - это посторонний объект в который можно записать данные
а на самом деле - он не посторонний, он затирает реальный чей-то буфер
Какой-то ужас с владением и дизайном
источник

SK

Sergey Krasnitsky in pro.cxx
Александр Караев
Какой-то ужас с владением и дизайном
Так и живём
источник

DS

Dmitry Sokolov in pro.cxx
Sergey Krasnitsky
Есть MyTable объект , у него где то большой буфер
есть r1, r2
r1 некая объект MyRow ссылается на record  №1
r2 некая объект MyRow ссылается на record  №2

но если определить где-то
MyRow  tmp = r1;

этот tmp будет портить всю картину
Непонятно, что портит, это ж просто view.
> У меня может быть несколько объектов value_type разных, но ссылающихся на одно место в таблице.
источник

АК

Александр Караев... in pro.cxx
Dmitry Sokolov
Непонятно, что портит, это ж просто view.
> У меня может быть несколько объектов value_type разных, но ссылающихся на одно место в таблице.
Попытаюсь угадать: часть операторов перегружена, чтобы имитировать логику owned типа (копирование данных при копировании ссылки на них или что-то такое)
источник

SK

Sergey Krasnitsky in pro.cxx
Александр Караев
Попытаюсь угадать: часть операторов перегружена, чтобы имитировать логику owned типа (копирование данных при копировании ссылки на них или что-то такое)
Ванга мод, такое выражение не встречал. Но в идея уловлена верно.
Есть MyTable который является MyVar
При этом могут быть простые скалярные MyVar's
MyRow от MyTable - от тоже является  MyVar
источник

DS

Dmitry Sokolov in pro.cxx
Sergey Krasnitsky
Ванга мод, такое выражение не встречал. Но в идея уловлена верно.
Есть MyTable который является MyVar
При этом могут быть простые скалярные MyVar's
MyRow от MyTable - от тоже является  MyVar
источник