@ProCxx

Страница 365 из 2477
Ned Ogl
28.10.2016
18:49:33
https://bitbucket.org/serafimati/matrixlib/

rape me

только ногами не пинайте

Dumitru
28.10.2016
18:57:13
А почему все в хэдере? Я спрашиваю для себя, может так и надо делать)

Google
Ned Ogl
28.10.2016
18:57:26
темплейты - да

иначе будет хедер тут, реализация там, использование сям

Rafael
28.10.2016
18:58:05
Пожалуй тоже поревьюжу твой кодец

Dumitru
28.10.2016
18:58:10
А там же все шаблон

Ned Ogl
28.10.2016
18:58:21
компиль не умеет в темплейты, ему надо знать, что ты туда подставил

мне так объяснил кто-то из здешних

Dumitru
28.10.2016
18:58:42
Это я понял, просто не заметил что там прям везде шаблоны

мне так объяснил кто-то из здешних
Мне тож, буквально пару дней назад)

Ned Ogl
28.10.2016
18:59:05
у меня template <class T> на копипастере стоит)

Rafael
28.10.2016
18:59:35
Это кстати отчасти удобно

Когда нужно ограничить типы которые можно использовать

А почему у тебя 8 пробелов это отступ, а не 4?

Google
Ned Ogl
28.10.2016
19:00:26
а ещё, читал недавно, чтобы не было проблем с компоновкой, все инлайны в тот же хедер, где и класс. если реализуешь прямо в классе, метод инлайн по умолчанию. типа так

Rafael
28.10.2016
19:00:47
Ты в деструкторе не освобождаешь память выделуню через new

Vladislav
28.10.2016
19:01:22
логический & вместо && https://bitbucket.org/serafimati/matrixlib/src/d0e395e23b9dd30fc1b8664dedf96fc75063b02f/matrixlib.h?at=master&fileviewer=file-view-default#matrixlib.h-132

Rafael
28.10.2016
19:01:27
orly?
Сек

Возможно я не туда посмотрел

Alex Фэils?︙
28.10.2016
19:02:26
Ned Ogl , а зачем два класса: row и const row? мб дальше тупо const row язать?

Ned Ogl
28.10.2016
19:03:05
Ned Ogl , а зачем два класса: row и const row? мб дальше тупо const row язать?
мы с американцем разобрали это как-то ночью. суть там в константности методов и возвращаемых значений. он сказал, итераторы через ту же йобу работают

Rafael
28.10.2016
19:03:43
orly?
А не, норм

Просто лучше используйте умный указатель

Ned Ogl
28.10.2016
19:03:53
и вообще, это deprecated фишка для тех кто любит [][]

Alex Фэils?︙
28.10.2016
19:04:00
class row{ private: Matrix<T> \*const parent; T \*const prow; public: row(Matrix<T> \*const _parent, T \*const _prow); ~row(); T& operator [](const int y); const T& operator [](const int y) const; };

Ned Ogl
28.10.2016
19:04:31
Просто лучше используйте умный указатель
я пока не дорос до такого , пишу ещё велосипеды:(

ничего, я сделяю

Dumitru
28.10.2016
19:04:57
Кстати а зачем возвращать ref ? Современный с++ вроде очень оптимально возвращает значение

Google
Rafael
28.10.2016
19:05:17
Просто почитай сначала про rvalue ссылки, потом про move семантику, потом про умные указатели

И про RAII не забудь

Ned Ogl
28.10.2016
19:05:45
у меня это отложено сразу после исключений. вторым делом) спасибо

Dumitru
28.10.2016
19:05:54
Умные указатели очень крутые! Главное не увлечься ) я как-то попался

Dumitru
28.10.2016
19:06:15
где?
Я к сообщению Алекса

Alex Фэils?︙
28.10.2016
19:06:17
Rafael
28.10.2016
19:06:20
А зачем классы внутри класса?

Ned Ogl
28.10.2016
19:06:37
А зачем классы внутри класса?
для корректной работы пары операторов A[x][y]

Alex Фэils?︙
28.10.2016
19:06:41
А зачем классы внутри класса?
Чтобы не засерать глобал неймспейс

Rafael
28.10.2016
19:06:58
Чтобы не засерать глобал неймспейс
Там можно же юзать кастомный namespace

Dumitru
28.10.2016
19:07:00
А зачем классы внутри класса?
Область видимости я думаю

Ned Ogl
28.10.2016
19:07:03
ибо вспомогательные, да. тем паче, приват

Dumitru
28.10.2016
19:07:18
Там можно же юзать кастомный namespace
Проще же внутрь запихнуть)

Rafael
28.10.2016
19:07:43
Проще же внутрь запихнуть)
Просто первый раз такое вижу, не обсессудте

Ned Ogl
28.10.2016
19:08:59
такое гораздо проще, потому что у row есть поле T*, где Т - параметр шаблона. было бы тяжко обходить этот вопрос, я уже думал на эту тему

Rafael
28.10.2016
19:09:32
Кстати о шаблонах

Google
Rafael
28.10.2016
19:09:52
Почему ты юзаешь class T, а не typename T

?

Dumitru
28.10.2016
19:10:05
Вроде одно и тоже

Alex Фэils?︙
28.10.2016
19:10:30
const T getElem(const int x, const int y) const; а чо не const T &getElem(const int x, const int y) const;

Почему ты юзаешь class T, а не typename T
похер как. Зато это на старых компилях пашет

Ned Ogl
28.10.2016
19:11:31
Почему ты юзаешь class T, а не typename T
одно и то же и Алёна пишет, что тайпнейм нужен именно тогда, когда надо указать, что дело - тип. я там ниже юзаю тайпнеймы когда throw

Rafael
28.10.2016
19:12:17
Вроде одно и тоже
насколько я помню тайпнаме использует когда мы хотим показать, что это строенные классы типо инт, дабл и прочее, а класс, когда юзаем кастомные классы

Ned Ogl
28.10.2016
19:12:40
const T getElem(const int x, const int y) const; а чо не const T &getElem(const int x, const int y) const;
1)тогда метод не может быть конст 2)Т - арифметический тип, нет смысла передавать ссылку в этом случае

Admin
ERROR: S client not available

Dumitru
28.10.2016
19:13:25
const T getElem(const int x, const int y) const; а чо не const T &getElem(const int x, const int y) const;
А смысл возвращать значение через конст?

Ned Ogl
28.10.2016
19:13:31
тогда не вижу смысла, это не сэкономит ничего

а хз, "лепи конст везде где не вредит"

Alex Фэils?︙
28.10.2016
19:13:45
Rafael
28.10.2016
19:14:36
ксттаи inline вроде деприкатед

Alex Фэils?︙
28.10.2016
19:14:36
тогда не вижу смысла, это не сэкономит ничего
если тип составной, то const T getElem(const int x, const int y) const; Вызовет T::T(const &T)

Google
Dumitru
28.10.2016
19:14:44
Потому что метод крнст
const T f() const; В чем смысл первого конст?

Alex Фэils?︙
28.10.2016
19:14:48
Rafael
28.10.2016
19:14:55
мне ребята из яндекса говорили, что ее нужно юзать ну в оочень крайних случаях

типо компилятор и так норм это обтрабатывает

Alex Фэils?︙
28.10.2016
19:15:10
const T f() const; В чем смысл первого конст?
Вернуть неизменяемое знвчение

Dumitru
28.10.2016
19:15:48
Вернуть неизменяемое знвчение
T a = f(); То есть я не смогу поменять а ?

Rafael
28.10.2016
19:15:53
не все ж
поэтому только в крайних случаях

и только после профайлинга

Ned Ogl
28.10.2016
19:16:18
хотя мб ты и прав

Alex Фэils?︙
28.10.2016
19:16:59
Rafael
28.10.2016
19:17:18
Matrix<T>::Matrix(const int _rows, const int _cols): rows(_rows), cols(_cols){ _name должно юзаться чтобы показать что это внутренняя переменная

а ты пихаешь это как параметры

Alex Фэils?︙
28.10.2016
19:17:43
это стиль кода

Похер

Тут есть замечания посерьещнее

Ned Ogl
28.10.2016
19:17:57
Dumitru
28.10.2016
19:17:59
Сможешь
Ну тогда в чем его смысл? В каком случае я не смогу поменять возвращаемое значение ?

Ned Ogl
28.10.2016
19:18:01
Alex Фэils?︙
28.10.2016
19:18:15
вперёд!
Я не дочитал пока до конца. Но

Rafael
28.10.2016
19:18:26
а тут какбе показывается, что она в местной области видимости
ты используешь список инициализации, где и инициализируешь внутренние перменные

Страница 365 из 2477