Opened 4 years ago
Closed 4 years ago
#1006 closed ожидается проверка (задача сдана)
WW #15
Reported by: | Денис Лочмелис | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW_linq | Version: | 1.0 |
Keywords: | Cc: |
Description
- Начал делать хорошие тесты, но надоело...
- Пытался передавать все элементы по const& / &&, но всё сломал select, причем я толком не смог понять, почему. Для однообразия все пришлось сделать по значению.
Change History (5)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Денис Лочмелис |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
- копирование функторов пофиксил
- виртуальный деструктор добавил, но зачем он тут нужен, если все равно default?
- X_eq через X
- to_vector через to_copy, вспомнил про back_inserter
- move - это артефакт от попыток сделать все на временных ссылках, убрал
- doDrop тоже артефакт
- кажется, что главное что bool(parent) первый. Флаг нужен, если элемент встретился, но нас потом попросили сделать ++. А, нас же не попросят. Ладно, убрано
- ну, теперь не надо переименовывать
И еще добавил пару тестов.
comment:3 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:4 Changed 4 years ago by
Owner: | changed from Денис Лочмелис to Дмитрий Свиридкин |
---|
comment:5 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
T operator*() override { return std::move(*parent); }
здесь move лишний и мешает RVO
-
select_enumerator(enumerator<T>& parent_, const F& func_) : parent(parent_) , func(func_) {}
Тут копирование функтора
в until и where аналогично
- в цепочке until(...).where(...) until будет проверять предикат дважды на одном и том же элементе
6 + 2
Note: See
TracTickets for help on using
tickets.
T operator*() override { return std::move(T(*begin)); }
зачем тут move?void doDrop() { dropped = true; }
этот метод не используется.if (bool(parent) && !predicate(*parent) && !flag)
в таком ли порядке должны быть проверки? Зачем тогда flag?5 + 2