#782 closed ожидается проверка (задача сдана)
#WW_14
Reported by: | Ruslan Salkaev | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_exceptions | Version: | |
Keywords: | Cc: |
Description
Change History (13)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:3 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
36 void set(std::size_t row, std::size_t col, int val);
int32_t
18 explicit MatrixException?(Exception e);
20 const char *what() const;
Желательно noexcept
71 for (int32_t i = 0; i < rows; ++i) {
72 for (int32_t j = 0; j < cols; ++j) {
73 tmp.set(i, j, tmp_data[i][j]);
74 }
75 }
size_t?
все еще
не проверяется успешность считывания (failbit, badbit)
(из std::ifstream is)
comment:4 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:5 Changed 4 years ago by
неправильное сообщение об ошибке в случае обрыва файла (basic_ios::clear: iostream error)
comment:9 Changed 4 years ago by
То есть можно смотреть и все работает, как написано в задании? Точно-точно?
comment:10 Changed 4 years ago by
Я проверил все что был в условии, и хочется верить, что я не настолько невнимательный, чтобы опять что-то не заметить.
comment:11 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
2 3
11 12 13
14 15
при загрузке файла с таким содержим получаю
"basic_ios::clear: iostream error"
а должно быть "LOAD: invalid file format."
53 if (row < 0 row >= rows_ col < 0 col >= cols_) <0 не имеет смысла для size_t
comment:12 Changed 4 years ago by
Действительно, если добавить в конец такого файла перенос строки, то выдаст такую ошибку. В файле на котором я тестил аналогичный ввод, перенос я не добавил.
4 #include <exception>
не нужно в include/matrix.h
get_elem
можно именовать просто at
set_elem
можно именовать просто set
Какая мотивация использовать int в этих методах для размеров?
лучше сделать enum (class), чтобы явно указывать тип ошибки (меньше возможностей ошибиться)
обычно реализуют operator += (-=, *=, ...), через который уже выражается +,-,*,...
Какая мотивация использовать std::vector<Matrix *> , а не std::vector<Matrix>?
проще тогда аргументом делать Matrix, а не const Matrix&
не проверяется успешность считывания (failbit, badbit)
всегда выставляйте .exceptions на failbit, badbit для стандартных потоков ввода/вывода, если не считаете их ожидаемыми