Opened 4 years ago

Closed 4 years ago

#1028 closed ожидаются исправления (задача сдана)

WW #15

Reported by: Solovyev Gleb Owned by: Egor Suvorov
Component: WW_linq Version: 1.0
Keywords: Cc:

Description


Change History (1)

comment:1 Changed 4 years ago by Egor Suvorov

Resolution: задача сдана
Status: assignedclosed
Type: ожидается проверкаожидаются исправления

Корректность 6.5/7.

  • Ваша реализация drop зачем-то разыменовывает элементы, которые пропускает.

Стиль 2/3:

  • Красивый инвариант с cur_element_. Лайк.
  • Не хватает слов explicit (конструкторы), rvalue-ref-qualifier у методов.
  • Не хватает виртуального деструктора в полиморфном классе enumerator. Конкретно в этой задаче это ни на что не влияет, но привычка полезная.
  • У enumerator стоит запретить копирование и перемещение — это точно ошибки. Перемещение можно запрещать, начиная с C++17 из-за copy elision.
  • Вы зря копируете элементы при захвате в функтор в until_eq/where_neq.
  • to_vector стоит выразить через copy_to + std::back_inserter
  • static_cast<bool> не нужен при использовании в логических выражениях, в том чисел в циклах.
  • Скобки в ++(*this) не нужны.
    • Также не нужны в A && (!predicate(B))
  • В почти всех энумераторах идёт дублирование кода между конструктором и operator++.
    • А в take_enumerator очень сложный тернарный оператор, лучше if'ом.
Note: See TracTickets for help on using tickets.