Opened 4 years ago

Closed 4 years ago

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

WW #15

Reported by: Ruslan Salkaev Owned by: Egor Suvorov
Component: WW_linq Version:
Keywords: Cc:

Description


Change History (1)

comment:1 Changed 4 years ago by Egor Suvorov

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

Корректность 5.5/7: падает until на пустом входе, плюс он всегда разыменовывает указатель после конца, что UB.

Стиль 1.75/3:

  • Категорически не хватает слов explicit (конструктор), final (для классов), noexcept, rvalue-ref-qualification для методов.
  • Не хватает виртуального деструктора у enumerator, класс-то полиморфный.
  • Лучше запретить копирование/перемещение (после C++17) у enumerator.
  • take_enumerator::operator++ — очень сложная логика: сначала count_ меняется, а потом принимается какое-то решение в зависимости от изменённого значения. Лучше честно разобрать все три случая.
  • until_enumerator — какой-то сложный инвариант: is_end_ как бы и даёт полезную информацию про то, закончился итератор или нет, но лишь частично. В итоге проверка распилена поровну между operator bool и void check(). В where сильно лучше.
Note: See TracTickets for help on using tickets.