Opened 4 years ago
Closed 4 years ago
#1013 closed ожидается проверка (задача сдана)
WW_15 vorobeva.polina
Reported by: | vorobeva.polina | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_linq | Version: | |
Keywords: | Cc: |
Description
Привет)
В лабе наверняка есть беды с лишними копированиями...
А еще такой вопрос: когда я пыталась реализовать where_neq, until_eq через создание лямбды и передачи в where/until_enumerator я очень долго страдала от того, что при вызове where_neq/until_eq несколько раз подряд все ломалось, если лямбдой я пыталась захватить переданное число по ссылке. Заменив такую штуку на копирование - все стало ок... Почему?
Change History (3)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to vorobeva.polina |
---|---|
Summary: | WW_15 → WW_15 vorobeva.polina |
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Owner: | changed from vorobeva.polina to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Привет)
Огромное спасибо за пояснение, стало сильно понятнее)
Переписала на перемещения, написала тест с функтором с assert(false) внутри copy ctor, вроде перемещает. Только он это делает дважды, сначала в функции-команде, затем уже в конструкторе enumerator'а. Без дополнительного std::move падал по тому assert'у из копирующего конструктора... К сожалению, не совсем поняла, как перемещать только один раз)
Не падает, уже клёво! Только с копированиями проблема. 7/10.
Значит кто-то дохнет когда не надо. Лёгкий способ проверить — понаписать в конструкторы-деструкторы-присваивания и читать вывод.
В твоём случае вот такой код: