#981 closed ожидаются исправления (задача сдана)
WW #15
Reported by: | Карнаухов Кирилл | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_linq | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (4)
comment:1 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
comment:3 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
P.S. Следует все вспомогательные методы сделать rvalue-ref-qualified.
comment:4 Changed 4 years ago by
P.P.P.S. А ещё не хватает виртуального деструктора у enumerator()
. Он формально здесь не требуется, но лучше добавить — класс-то уже полиморфный.
Note: See
TracTickets for help on using
tickets.
Корректность 6/7: на пустом входе падает
until_enumerator
.Стиль 2/3:
*this
, читать проще (привычнее) и симметричнее с остальным кодом:((operator bool()))
— лучшеwhile (*this)
operator*()
— лучше**this
operator++()
— лучше++*this
operator bool()
должен бытьexplicit
.enumerator
стоит запретить присваивание и копирование. И начиная с C++17 можно даже перемещение запретить из-за copy elision.where
есть дублирование кода между методами.select_enumerator
требуется каждый раз перевычислять элемент.std::move(static_cast<T>(....))
точно не нуженmove
(ну, еслиT
не ссылка сам по себе).operator++
всегда можно вызывать, иногда это no-op" стоит явно задокументировать. Аналогично с инвариантомoperator bool()
noexcept.