Opened 4 years ago

Closed 4 years ago

#1004 closed ожидается проверка (задача сдана)

WW #15

Reported by: sukhodolskiy.maksim Owned by: Egor Suvorov
Component: WW_linq Version: 2.0
Keywords: Cc:

Description


Change History (7)

comment:1 Changed 4 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to sukhodolskiy.maksim
Type: ожидается проверкаожидаются исправления

Корректность 6/7: не работает until на пустом входе.

Стиль 1.25/3:

  • Не хватает слов final, explicit (конструктор), noexcept, rvalue-ref-qualifier у методов.
  • Не хватает виртуального деструктора в полиморфном классе enumerator. Конкретно в этой задаче это ни на что не влияет, но привычка полезная.
  • У enumerator стоит запретить копирование и перемещение — это точно ошибки. Перемещение можно запрещать, начиная с C++17 из-за copy elision.
  • static_cast<bool>(parent_) не нужен — explicit operator bool в таких контекстах как раз прекрасно работает. explicit запрещает parent_ + 1.
  • Не очень консистентно используются () и {} в member initialization list: выберите что-нибудь одно.
  • В where_enumerator есть некоторое дублирование кода.

comment:2 Changed 4 years ago by Egor Suvorov

Resolution: задача сдана
Status: assignedclosed

Можно переоткрыть и дорешать.

comment:3 Changed 4 years ago by sukhodolskiy.maksim

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:4 Changed 4 years ago by sukhodolskiy.maksim

В тг договорились на дорешку до 3 июня 22:59 на баллы.

comment:5 Changed 4 years ago by sukhodolskiy.maksim

Resolution: задача сдана
Status: closedreopened

Оказывается, нужно было ещё тикет открыть.

comment:6 Changed 4 years ago by sukhodolskiy.maksim

Owner: changed from sukhodolskiy.maksim to Egor Suvorov
Status: reopenedassigned

comment:7 Changed 4 years ago by Egor Suvorov

Resolution: задача сдана
Status: assignedclosed

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

Стиль 2.5/3:

  • drop может быть noexcept
  • Не надо писать operator++(), вызывайте операторы как обычно. Например: ++*this.
  • Итераторы хорошо бы мувать, а не копировать в range_enumerator. Они, конечно, маленькие, но код тут обобщённый.
  • Вместо cached_+current_std::optional<T>
  • Перед : в member initializer list стоит сделать перевод строки и отступ, чтобы не было отступа по 100500 символов перед очередным членом.
  • findFirstSuitable — не совсем first. Скорее next. Ну и Suitable я бы убрал.
Note: See TracTickets for help on using tickets.