Opened 3 years ago
Closed 3 years ago
#733 closed ожидается проверка (задача сдана)
lab_14 (volkov.ivan) (WW_linq)
Reported by: | Ivan Volkov | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_linq | Version: | |
Keywords: | Cc: |
Description
((( Реализация поддерживает инвариант, что перед взятием * все, что надо было пропустить уже должно быть пропущено где-то ранее (например я позволяю себе операции в конструкторе; мы обсуждали, почему это не очень, но на гитхабе написано что так можно), а еще что operator ++
может вызываться только если operator bool()
вернул true
)))
Change History (5)
comment:1 Changed 3 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to Ivan Volkov |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:3 Changed 3 years ago by
Owner: | changed from Ivan Volkov to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:4 Changed 3 years ago by
Да, скобки поубирал, прочие неизящества какие нашел -- поправил.
Сделал полиморфизм в параметрах всех функций шаблонным. Поля, у которых были типы вида std::function<bool(T)>
заменил на std::function<bool(const T&)>
UPD. Написал реализацию без std::function
, но вроде у меня только пара лишних шаблонных параметров добавилась и код скорее упростился, так что я не уверен, что там все правильно и это в отдельном файле (include/linq_no_function.hpp
)
comment:5 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Вообще да, без function прям что хотелось) Но и с ним стало ок.
Всё как надо.
Местами вижу синтаксические неизащества. Скажем,
(parent_)
: зачем скобки.Почему-то в
.where()
у тебя шаблонный полиморфизм, а вwhere_enumerator
ужеstd::function
, как-то нелогично. Тем более ты форсируешь непередачу ссылок, что в целом не так страшно, но всё равно.Попробуй добиться решения без
std::function
. 9.