Size: a a a

2021 January 30

SK

Sergey Krasnitsky in pro.cxx
Серж
Код ревью своя реализация сортировки пройдёт?
чей код ревью? :)
Не проблема написать или покопаться в своих архивах
Надо чтобы предикат для сравнения передавал как в родной std::sort
источник

D

Danya in pro.cxx
Sergey Krasnitsky
короче добавил у себя в namespase
inline void swap (MyRow& a,MyRow& b)
{
 printf ("swapping %2d <=>%2d\n", a.Idx, b.Idx);
}

не вызывается!
источник

SK

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

DS

Dmitry Sokolov in pro.cxx
Sergey Krasnitsky
В том и вся фишка, move не сделан криво. Я другой move не могу дать.  Это согласно дизайна моего контейнера. У меня может быть несколько объектов value_type разных, но ссылающихся на одно место в таблице. Это исходное условие.
А они не пользуются swap почему-то. А без перегрузки swap эту вещь похоже не решить.
То есть move таки сделан но он не  перемещает? И "pointer to the buffer" и "множество ссылающихся" намекает что семантика владения это raw pointer? А зачем вообще тогда не default copy/move?
источник

SK

Sergey Krasnitsky in pro.cxx
потому что  этот MyRow это сложный класс со своим контекстом, без него raw pointer не имеет никакого значения. MyRow наследуется от более универсального класса, который не связан с таблицами, и умеет делать многие умные вещи
источник

DS

Dmitry Sokolov in pro.cxx
Sergey Krasnitsky
потому что  этот MyRow это сложный класс со своим контекстом, без него raw pointer не имеет никакого значения. MyRow наследуется от более универсального класса, который не связан с таблицами, и умеет делать многие умные вещи
Но не умеет копироваться/перемещаться?
источник

AF

Aidar Fattakhov in pro.cxx
Sergey Krasnitsky
потому что  этот MyRow это сложный класс со своим контекстом, без него raw pointer не имеет никакого значения. MyRow наследуется от более универсального класса, который не связан с таблицами, и умеет делать многие умные вещи
Мб нормальные операторы?
источник

AF

Aidar Fattakhov in pro.cxx
Мб соблюдать семантику?
источник

AF

Aidar Fattakhov in pro.cxx
Мб не писать код странность которого никто не ожидает увидеть в этом месте?
источник

SK

Sergey Krasnitsky in pro.cxx
Dmitry Sokolov
Но не умеет копироваться/перемещаться?
Он не может переместиться, т.к. его данные сидят в другом месте. Я их не могу оттуда выжрать и сказать - тут дырка
источник

AF

Aidar Fattakhov in pro.cxx
Чем оператор= принципиально отличается от swap?
источник

SK

Sergey Krasnitsky in pro.cxx
сорри "выдрать" , но получилось прикольно :)
источник

DS

Dmitry Sokolov in pro.cxx
Sergey Krasnitsky
Он не может переместиться, т.к. его данные сидят в другом месте. Я их не могу оттуда выжрать и сказать - тут дырка
Ну shared_ptr или unique_ptr справляются же как то.
источник

D

Danya in pro.cxx
Кажется, надо удалить move операции из класса и написать свою сортировку
источник

SK

Sergey Krasnitsky in pro.cxx
Aidar Fattakhov
Чем оператор= принципиально отличается от swap?
тем что нельзя пользоваться посторонними temp переменными
можно только делать swap 2м переменным реальным а не temp
источник

AF

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

AF

Aidar Fattakhov in pro.cxx
Swap должен работать очевидно не только с содержимым одного контейнера
источник

AF

Aidar Fattakhov in pro.cxx
Aidar Fattakhov
Swap должен работать очевидно не только с содержимым одного контейнера
Собственно у list вон свой sort, делайте так же
источник

AF

Aidar Fattakhov in pro.cxx
Sergey Krasnitsky
тем что нельзя пользоваться посторонними temp переменными
можно только делать swap 2м переменным реальным а не temp
В чем разница реальной и temp?
источник

SK

Sergey Krasnitsky in pro.cxx
ну да, в своём сорте нет проблем никаких, просто я думал, что я что-то упустил, решил посоветоваться.
источник