Opened 4 years ago
Closed 4 years ago
#769 closed ожидается проверка (задача сдана)
WW #14
Reported by: | gabitov.daniil | Owned by: | Артур Гулецкий (huletski) |
---|---|---|---|
Component: | WW_exceptions | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (11)
comment:1 Changed 4 years ago by
Owner: | changed from Артур Гулецкий (huletski) to gabitov.daniil |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:3 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:4 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:5 Changed 4 years ago by
Owner: | changed from gabitov.daniil to Артур Гулецкий (huletski) |
---|
comment:6 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:7 Changed 4 years ago by
UPD: если чинить дублирование добавлением try над всеми if'ами станет хуже с т.з. вложенности. Если нет идей как можно организовать обработку команд иначе, можно не чинить.
comment:8 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:9 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Замечания:
main.cpp
- 17: старайтесь называть переменные не по типу хранимого значения, а по его смыслу: s/matrix_vector/registers, т.к. предполагается, что читающему код неважно в какой структуре хранятся матрицы (std::array, std::map, etc);
- 34:
stream >> matrix_vector[reg_number];
проще;
matrix.cpp
- 13: неясно почему
successful_allocs
переменная класса, а не локальная. FYI: как можно было сделать без учета числа успешных аллокаций посмотрели на практике; - блоки try 15, 21 можно объединить в один (нужно инициализировать _arr nullptr'ом, чтобы в общем обработчике исключения понимать успешно ли ему выделилась память);
- 65: (fyi) noexcept у метода неоднозначный (холиварный). Технически, исключения из метода не вылетит (если и вылетит, то при копировании аргумента в параметр, а это еще не код метода), но для пользователя метода statement вида
matrix1 = matrix2;
не будет иметь no-exception гарантии; субъективно кажется, что noexcept в этом случае запутывает; - 91: а если поток передать в режиме "бросай при установке error flag'a"? Лучше noexcept убрать;
- 108: как раз здесь можно элементы брать через unsafe версию метода, чтобы избежать избыточных проверок, т.к. точно знаем, что индексы корректны;
- 115: op= возвращает *this ->
return *this = *this + other;
проще. FYI: реализация op+ через op+= была бы эффективнее (в op+= не делалась бы лишняя копия).
Баллы: 8.75 (мелкие замечания по стилю, noexcept у op<<). Можно доделыать.
comment:10 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
comment:11 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
matrix.cpp
- 25-28, 34-37: можно вынести в отдельный приватный метод;
- 131: можно сразу возвращать результат выражения.
Баллы: 10.
Note: See
TracTickets for help on using
tickets.
Общие замечания:
Замечания:
Баллы: 3.5.