Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

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

WW #15

Reported by: Surkov Petr Owned by: Egor Suvorov
Component: WW_linq Version: 1.0
Keywords: Cc:

Description


Change History (4)

comment:1 Changed 4 years ago by Egor Suvorov

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

Проверялась версия 4394 или более ранняя.

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

Стиль 2.5/3:

  • operator bool должен быть explicit.
  • back_inserter лучше явно указать как std:: вместо ADL.
  • Странно, что select_enumerator перевычисляет значение несколько раз.
  • until_enumerator::find_current — какая-то жесть происходит в условии. Читается код так: "если current непустой забей. Иначе при каком-то условии сделай его пустым. ШТА?". Не надо в условии if менять значения переменных.
    • К тому же эту штуку лучше вызывать в конструкторе и operator++, будет консистентнее с поведением условного istream_iterator и не надо optional<>.

comment:2 Changed 4 years ago by Egor Suvorov

P.S. И noexcept явно не хватает

comment:3 Changed 4 years ago by Egor Suvorov

P.P.S. А ещё не хватает виртуального деструктора у enumerator(). Он формально здесь не требуется, но лучше добавить — класс-то уже полиморфный.

comment:4 Changed 4 years ago by Egor Suvorov

P.P.P.S. И всяких запретов на копирование/присваивание enumerator. И даже move можно запретить с C++17.

Note: See TracTickets for help on using tickets.