@ProCxx

Страница 348 из 2477
Max
24.10.2016
15:05:17
даешь god-классы!1

Google
Kirill
24.10.2016
15:06:54
Общее правило: если функция, работающая с классом, не требует доступа к его внутренним полям, или этот доступ эффективно осуществим через геттеры/сеттеры, то функцию лучше объявить следом за классом в том же файле в том же простанстве имен. Исключение: шаблонные классы.

Kirill
24.10.2016
15:07:48
Класс std::string пример неудачного проектирования. :)

В нем больше сотни функций-членов.

Andrey
24.10.2016
15:08:14
stl в первоначальном виде, это отдельная песня

Kirill
24.10.2016
15:08:18
Из которых 2/3 можно сделать внешними.

Andrey
24.10.2016
15:08:33
Степанов в принципе не любит ООП )

Kirill
24.10.2016
15:08:51
Какой Степанов?

Dumitru
24.10.2016
15:08:51
А на сколько хорошая практика реализовывать функции в хэдере ?

Max
24.10.2016
15:08:59
некоторый ф-ции можно даже за cpp не выпускать
даже более того - некоторые классы

Andrey
24.10.2016
15:08:59
Какой Степанов?
кто stl придумал )

отравившись рыбой :D

Kirill
24.10.2016
15:09:16
кто stl придумал )
Забыл про него, каюсь.

Google
Kirill
24.10.2016
15:09:19
а чем стринг плох?

Dumitru
24.10.2016
15:09:34
Aldar
24.10.2016
15:09:46
есть еще такая штука - anonymous namespace

тарить в ней реализацию всяких хелперов

Kirill
24.10.2016
15:10:18
а чем стринг плох?
Своей монолитностью.

Kirill
24.10.2016
15:10:19
плоха, если это не шаблон
и если это не жутко соптимизрованный инлайн

Max
24.10.2016
15:10:35
да, точно

Kirill
24.10.2016
15:10:41
Своей монолитностью.
так тот же вектор только впрофиль

Andrey
24.10.2016
15:10:54
для инлайнов есть inline

Kirill
24.10.2016
15:11:27
так тот же вектор только впрофиль
Честно говоря, не смотрел весь список вектора. Это я процитировал товарища Саттера.

Kirill
24.10.2016
15:11:29
для инлайнов есть inline
но если нет lto и оно в другой единце трансляции, то пофиг на инлайн, из одного бьекта в другой ничего не перескочит

Kirill
24.10.2016
15:12:31
а вот нинада из одного объекта в другой :D
мне сквозная оптимизация по работе ой как нужна прост)

Kirill
24.10.2016
15:12:34
для инлайнов есть inline
Который компилятор благополучно игнорирует, если звезды на небе не так встали.

Kirill
24.10.2016
15:14:11
В среднестатистическом коде после оптимизации функции, объявленные как встроенные, не будут встроены, а многие из не объявленных встроятся. :)

Kirill
24.10.2016
15:15:02
я по специфике работы пишу на O3 и смотрю асм листинги

вот там такой пипец, когда все параметры шаблонно передаются компилятору на откуп дается сквозная оптимизация))

Kirill
24.10.2016
15:15:32
Сочувствую.

Google
Kirill
24.10.2016
15:16:23
Что бы там Линус не говорил про i386, его ассемблер это жесть.

Kirill
24.10.2016
15:16:34
у меня арм ассемблер

thumb thumb2

Kirill
24.10.2016
15:17:20
А, ну про ARM не знаю. Я видел ассемблер Analog Devices SHARC. Это просто песня.

256 регистров и инструкции вида r14 = r5 + r10;

Если пишешь маленькую плохонькую программку, то даже не придется в память обращаться.

Kirill
24.10.2016
15:20:57
там 13 общего назначения. метр флеша, 128 кб оперативки. в большинстве случаев такой дикий угар с передачей 99% параметров в виде шаблонных параметров и вычисление из них в compile time нужных тебе вещей является излишеством

но живем один раз, и почему бы собственно нет :)

Kirill
24.10.2016
15:22:24
задачи не столь сложны чтобы прям охреневать)

Alex Фэils?︙
24.10.2016
15:30:55
Однажды ты узнаешь про идиому Pimpl и будет вообще шикарно. :)
да. Я ее случайно изобрел на первом курсе, когда впадлк было инклюды делать

Kirill
24.10.2016
16:50:53
Потому что функции-члены нужны для работы с членами класса. Незачем пихать в класс то, что может быть столь же эффективно реализовано вне класса.

Ned Ogl
24.10.2016
16:51:32
Слышал, операторы хорошо бы наружу, но не впираю, нахера

Вот реально, ведь все равно объявлять френдами в классе

Какая разница как потом его описать

Kirill
24.10.2016
16:56:15
Начнем с того, что не любой оператор можно определить внутри класса.

Ned Ogl
24.10.2016
16:56:30
Например?...

Наоброт, снаружи, вроде б

Google
Ned Ogl
24.10.2016
16:57:03
И что ты понимаешь под "объявить внутри/снаружи"

Kirill
24.10.2016
16:57:10
Например, любимый многими оператор потокового вывода <<

Alex Фэils?︙
24.10.2016
16:57:46
А киньте книжку банды четырех по паттернам проектирования

Ned Ogl
24.10.2016
16:58:03
Она ж сверху где-то всегда

Была...

Alex Фэils?︙
24.10.2016
16:58:57
Нащел

Тут есть

Kirill
24.10.2016
16:59:01
Потому что операторы, определенные как члены, подразумевают левый операнд типа класса.

Alex Фэils?︙
24.10.2016
16:59:35
#book #design #patterns

Admin
ERROR: S client not available

Ned Ogl
24.10.2016
16:59:43
Но зачем тогда бинарные принято выносить наружу? И как объявить снаружи оператор, если все равно надо friend?

Kirill
24.10.2016
17:00:49
А если нужен оператор вида T1 op T2, где T2 - твой класс, то его можно определить только как внешнюю функцию.

Ned Ogl
24.10.2016
17:01:09
Блин, непонятно... Разве тот же << не надо внутри класса сделать френдом?

Я чот позабыл эту лекцию

Ned Ogl
24.10.2016
17:02:42
Заебёшься же геттеры звать, это же call, это же долго...

Kirill
24.10.2016
17:03:30
Либо делаешь оператор другом, либо добавляешь функцию член toString, которую вызываешь в теле оператора.

Google
Kirill
24.10.2016
17:03:59
Заебёшься же геттеры звать, это же call, это же долго...
Преждевременная оптимизация - зло.

@CriOnsKry
24.10.2016
17:04:30
@CriOnsKry
24.10.2016
17:05:19
Про бота? ?
Нет, на должность тех.инженера или тех.директора

Ned Ogl
24.10.2016
17:05:25
@CriOnsKry
24.10.2016
17:05:29
Новая, сегодня-вчера

Ned Ogl
24.10.2016
17:05:45
Угорал долго)

Kirill
24.10.2016
17:06:14
@CriOnsKry
24.10.2016
17:06:41
Да, про нее.
Понял в каком смысле "про бота"? дошло

Kirill
24.10.2016
17:07:46
Передача объекта через стринг и парсить?
Преобразование объекта в строку и вызов ostream << str.

Ned Ogl
24.10.2016
17:08:02
А что ты читал, что так знаешь?

Или чистая практика?

Kirill
24.10.2016
17:08:38
Саттер, Мейерс

Ned Ogl
24.10.2016
17:08:58
Ты офигенно объясняешь, тебе бы лекции читать)

И лаконично, и понятно)

Kirill
24.10.2016
17:09:38
Если бы за это еще платили... ?

Ned Ogl
24.10.2016
17:09:48
Плотят же, не поверишь)

Школоло, студенты

Репетитором, а там развивать тему

Я так с матикой провернул

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