Opened 4 years ago
Closed 4 years ago
#800 closed ожидается проверка (задача сдана)
WW #14
Reported by: | onofriychuk.ilya | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_exceptions | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (7)
comment:2 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:3 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:4 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
10 Matrix(size_t rows = 0, size_t cols = 0);
лучше explicit, чтобы случайно Matrix(NULL) не конструировать
27 explicit MatrixException?(const char* msg = "");
зачем = ""?
кажется, проще выставить .exceptions на failbit, badbit для потоков ввода/вывода и один раз в main-е обработать
11 throw MatrixException?("Unable to allocate memory.");
лучше bad_alloc обработать отдельно в main. Например, в этом месте требуется аллокация памяти при конструировании исключения, что может привести к std::terminate (памяти-то нет)
54 int32_t& Matrix::getElem(size_t row, size_t col) {
название не соответствует сигнатуре, лучше явно выразить, что возвращается ссылка - добавить Ref к названию либо поменять имя на at (что ближе к стандартной библиотеке)
comment:5 Changed 4 years ago by
Version: | 2.0 → 3.0 |
---|
comment:6 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:7 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
В условии просили немного другой набор пробельных символов.
mkdir -p obj
g++ -O2 -Wall -Werror -std=c++11 -Iinclude -c -MMD -o obj/matrix.o src/matrix.cpp
src/matrix.cpp: In constructor ‘math_matrix::Matrix::Matrix(size_t, size_t)’:
src/matrix.cpp:10:13: error: catching polymorphic type ‘class std::bad_alloc’ by value [-Werror=catch-value=]
src/matrix.cpp: In member function ‘math_matrix::Matrix& math_matrix::Matrix::operator*=(const math_matrix::Matrix&)’:
src/matrix.cpp:48:19: error: catching polymorphic type ‘class std::bad_alloc’ by value [-Werror=catch-value=]
src/matrix.cpp: In member function ‘int32_t& math_matrix::Matrix::getElem(size_t, size_t)’:
src/matrix.cpp:57:19: error: catching polymorphic type ‘class std::out_of_range’ by value [-Werror=catch-value=]
src/matrix.cpp: In member function ‘int32_t math_matrix::Matrix::getElem(size_t, size_t) const’:
src/matrix.cpp:65:19: error: catching polymorphic type ‘class std::out_of_range’ by value [-Werror=catch-value=]
src/matrix.cpp: In member function ‘void math_matrix::Matrix::load(const char*)’:
src/matrix.cpp:97:19: error: catching polymorphic type ‘class std::bad_alloc’ by value [-Werror=catch-value=]
cc1plus: all warnings being treated as errors
Makefile:17: recipe for target 'obj/matrix.o' failed
make: * [obj/matrix.o] Error 1