
Ned Ogl
20.10.2016
14:25:48
эй, кореша, скажите, как правильно эксепшны оформлять?
на каждый эксепшн свой класс, или можно их как-то подсобрать в кучку?

Александр
20.10.2016
14:31:47

Ned Ogl
20.10.2016
14:32:25

Google

T3ch
20.10.2016
14:39:02
да, там переопределяешь метод аля what() только более удобный

Ned Ogl
20.10.2016
14:45:56

T3ch
20.10.2016
15:17:46

Ned Ogl
20.10.2016
15:18:11
оО...

T3ch
20.10.2016
15:18:22
есть смысл в своем базовом классе поменять на что-то с std::string const&, так удобнее

$continue$
20.10.2016
16:46:47
enable_if <>
template

Sergey
20.10.2016
17:27:09
Энейбл иф обычно для дизамбигити в выборе сигнатур или типов в шаблонах юзают. Больше он ни на что не годен.
Если не юзаешь идеи буста, то для исключений всегда std::runtime_error в качестве базового класса юзай. Метод what перекрывать тогда не надо, тк в конструктора можно набить строку описания. Ну а делать свой what со шлехами в стд::стрингах - плохая идея. Между модулями станет неудобно исключения пересылать, тк каждый со временем зааедет свой метод
*заведет

TheRainwildsKeeper
20.10.2016
17:41:06
Переопределять what() и правда не очень, попробую теперь так делать

Ned Ogl
20.10.2016
19:45:42
ребяят, а есть идея, как перегрузить оператор [][]?

Google

Ned Ogl
20.10.2016
19:47:07
имеется класс
template <class T> class Matrix{
private:
int cols, rows;
T* data;
}
есть ли способ перегрузить оператор [][]?

Эдуард
20.10.2016
19:50:04
Через подобъект
Строку например возвращать

Ned Ogl
20.10.2016
19:50:29
ну, я возвращаю T*

Эдуард
20.10.2016
19:50:34
Или столбец (смотря что удобнее)

Ned Ogl
20.10.2016
19:50:44
это строка, да
но как теперь для строки реализовать оператор []?

Александр
20.10.2016
19:51:06
А зачем его перегружать?)

Ned Ogl
20.10.2016
19:51:25
T operator[](T* row); ???

Александр
20.10.2016
19:52:07

Ned Ogl
20.10.2016
19:52:26
все дела

Lorgar
20.10.2016
19:52:29
хочу спросить, двумерный массив распологается в памяти линейно, в одной плоскости, разумеется( очевидно) что и массивы любого измерения будут распологаться линейно
тогда и адреса(номера) новых измерений(строк) будут у них распологаться линейно ( друг за другом, последовательно в памяти)

Ned Ogl
20.10.2016
19:53:01
это я понимаю, блин
как оператор-то объявить
я сейчас задаю вопрос по синтаксису именно

Александр
20.10.2016
19:55:30

Google

Ned Ogl
20.10.2016
19:55:40
блять
либо по делу, либо не отвечай

Александр
20.10.2016
19:56:32
Кхххх)) ты просто делаешь херню

Ned Ogl
20.10.2016
19:58:07
я просто делаю класс

Artem
20.10.2016
19:59:28
Ты можешь по оператору скобки отдавать служебный объект
Считай, итератор
В котором тоже будет оператор скобки
Это нормальная практика, особенно если с первым объектом можно будет работать как со столбцом.

Ned Ogl
20.10.2016
20:01:19
да, сделал как раз так
просто немножко тупил, как именно это реализовать

Artem
20.10.2016
20:04:05
Ну только так, и так -правильно

Admin
ERROR: S client not available

Ned Ogl
20.10.2016
20:31:35
бля, а как теперь сделать, чтобы оно было lvalue?

Vladislav
20.10.2016
20:33:32

Ned Ogl
20.10.2016
20:33:49
Благодарю

Lorgar
20.10.2016
20:35:53
ладно забейте

Ned Ogl
20.10.2016
21:17:28

Vladislav
20.10.2016
21:17:45
вспомогательному

Ned Ogl
20.10.2016
21:18:46
а почему, если оператор [][] возвращает значение элементарного типа?
например, int

Google

Vladislav
20.10.2016
21:20:57
это если тебе нужно уметь ar[] = br[] делать
а так просто int& возвращай)

Ned Ogl
20.10.2016
21:21:38
фак
нипанятна

Vladislav
20.10.2016
21:23:16
что именно?)

Ned Ogl
20.10.2016
21:23:27
ничиво
ща
проще заскринить
Matrix[] возвращает row
row[] возвращает элемент матрицы (тип Т)

Vladislav
20.10.2016
21:24:41
в row T& operator[](..) сделай
а operator= убери, если присваивание строк ненужно)

Ned Ogl
20.10.2016
21:25:36
ненужно, конечно
спасибо
ребят, я совсем тупой, но я не понимаю, почему A[i++] вылетает за границы массива