@ProCxx

Страница 630 из 2477
Илья
02.03.2017
19:21:25
DRY же

Mikhail
02.03.2017
19:21:56
сейвить время во время выполнения?
в плюсах - как минимум кодогенерация во время компиляции. чтобы ручками бойлерплейт не писать, который не получается архитектурно красиво обыграть, чтобы ручками это дело не писать. ну некоторые пользуют, чтобы над другими посмеяться.

Mikhail
02.03.2017
19:23:26
#define private public // показать все что скрыто ?
#define true false // всегда отвечать "так точно, товарищ командир. вы в доме хозяин" ???

Google
Stanislav
02.03.2017
19:23:28
сейвить время во время выполнения?
вам сюда https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w

/dev
02.03.2017
19:26:43
уменьшать количество кода
За такое и по рукам можно получить. Особенно весело потом отлаживать баги в макросах

Илья
02.03.2017
19:27:28
За такое и по рукам можно получить. Особенно весело потом отлаживать баги в макросах
просто не надо совать макросы куда попало, но кое-где они бывают вполне к месту

/dev
02.03.2017
19:28:24
в чем профит макросов
Одно из популярных применений: делать разные версии в зависимости от параметров сборки. Код вообще не трогаешь, а -DMARCO передаёшь компилятору

просто не надо совать макросы куда попало, но кое-где они бывают вполне к месту
Их вообще лучше не совать для сокращения размера кода. Есть шаблоны, есть инлайны. Есть типобезопасность. А за списки и сортировки на макросах увольнять сразу надо

melancholiac
02.03.2017
19:30:44
интересно

жалко нет примера из корютилсов, их там много было

Илья
02.03.2017
19:31:55
есть такой язык nim - там как раз очень обширно используются макросы

/dev
02.03.2017
19:32:47
угу, тот мифический инлайн
__attribute__ __forceinline никто не запрещал

melancholiac
02.03.2017
19:32:53
соре мне макросов в лиспе хватает

Google
Stanislav
02.03.2017
19:33:28
/dev
02.03.2017
19:34:32
запрещал
Религия?

Stanislav
02.03.2017
19:34:53
компелятор

Alex Фэils?︙
02.03.2017
19:35:05
melancholiac
02.03.2017
19:35:21
крч явных профитов выбирать макросы для задач когда можно юзать функции нет

ток в рантайме функалл не юзать

Anna
02.03.2017
19:35:48
а у меня макросами половина грамматики задефайнена >_<

Anna
02.03.2017
19:36:42
Илья
02.03.2017
19:37:01
крч явных профитов выбирать макросы для задач когда можно юзать функции нет
как минимум сборки это точно, например: #ifdef WINDOWS // пишем виндовую реализацию либы #elif LINUX // пишем линуксовую реализацию либы #endif

как-то так

melancholiac
02.03.2017
19:37:50
я понял, я не правильно задал вопрос вернее забыл уточнить контекст макросов vs функций

/dev
02.03.2017
19:37:54
А, ну ещё есть полезный юзкейс макросов — компиллерспецифики оборачивать в них

melancholiac
02.03.2017
19:38:55
просто когда разбирал код курютилсов там были макросы , которые юзались как функции

Anna
02.03.2017
19:39:24
адская работенка у меня ?

Vladislav
02.03.2017
19:39:48
Google
/dev
02.03.2017
19:40:30
Что ещё особо полезного для отладки: __LINE__ и генерация всяких производных от него

Alex Фэils?︙
02.03.2017
19:40:41
люблю юзать макросы-функции для иниуиализации pod-структур

Илья
02.03.2017
19:42:03
в випапи вообще по моему больше макросов чем функций -_-

Alex Фэils?︙
02.03.2017
19:42:18
#define MAKE_TOKEN(id) {id, #id, countof(id)} чот как-т так

Stanislav
02.03.2017
19:42:23
Alex Фэils?︙
02.03.2017
19:42:47
батенька 2017 на дворе
А что ты предложишь взамен? Как мне енам представить в строковом виде?

melancholiac
02.03.2017
19:42:51
курютилсов? шта?
ну дада не gnuшаюсь иногда смореть сорцы ютилсов

Илья
02.03.2017
19:43:36
Alex Фэils?︙
02.03.2017
19:44:13
ждать 2020 и рефлекшен)))
Не. # хорошо stringify хрень

Как 2020 выйдет, заменю

Илья
02.03.2017
19:44:51
Stanislav
02.03.2017
19:44:52
Не. # хорошо stringify хрень
ну вот, без рефлекшена не обойтись без макросов

кстати, по истории С

Stanislav
02.03.2017
19:45:06
там препроцессор был тупой

Илья
02.03.2017
19:45:11
что-то из нового стандарта?

Stanislav
02.03.2017
19:45:13
только инклудил

Alex Фэils?︙
02.03.2017
19:45:18
stringify?
Да. Она превращает хрень в "хрень"

Google
Stanislav
02.03.2017
19:45:29
а потом пришел какой то чувак, и нахучил дефай какой мы его щас знаем

Alex Фэils?︙
02.03.2017
19:45:30
Surreal
02.03.2017
19:45:49
Non-standard
Да срать. У меня любовь к этому макросу.

Surreal
02.03.2017
19:45:56
И ничего этому не помешает.

Илья
02.03.2017
19:46:13
это из того же стандарта в котором выйдет stringview?

Surreal
02.03.2017
19:46:32
string_view в gsl есть.

Alex Фэils?︙
02.03.2017
19:46:35
???!!!
#define STR(q) #q char * qweqwe = STR(qweqwe); // "qweqwe"

Admin
ERROR: S client not available

Stanislav
02.03.2017
19:46:40
Q_FUNC_INFO

Alex Фэils?︙
02.03.2017
19:46:57
Илья
02.03.2017
19:47:20
string_view в gsl есть.
gsl? что за gsl

Surreal
02.03.2017
19:47:59
gsl? что за gsl
"Guideline Support Library"

Илья
02.03.2017
19:48:01
#define STR(q) #q char * qweqwe = STR(qweqwe); // "qweqwe"
а смысл? больше же кода

/dev
02.03.2017
19:48:02
__PRETTY_FUNCTION__
У тебя может быть несколько аллокаций внутри одной функции. И для каждой можешь захотеть потом статистику собирать

Alex Фэils?︙
02.03.2017
19:49:14
а смысл? больше же кода
#define STR(q) "my" #q #define STR2(q) STR(q) char * qweqwe = STR(qweqwe); // "myqweqwe" char *curline = STR2(__LINE__); // "13", если текущач линия 13

/dev
02.03.2017
19:49:59
Можно new переопределить. Или вы про какие-то другие аллокации?
Вариант. Другой случай: отладка cuda или opengl. Или какого другого асинхронного многопотока. Вот там уже в каждой строчке хочется быть уверенным.

Google
Alex Фэils?︙
02.03.2017
19:50:22
ЛИНИЯ
специалбно добавил надмозга, чтобы обратить внимания?

/dev
02.03.2017
19:51:38
Можно new переопределить. Или вы про какие-то другие аллокации?
А нет, new тебе в конструктор/аллокатор укажет, а не на точку спавна объекта

Surreal
02.03.2017
19:52:12
Можно и адрес объекта писать.

/dev
02.03.2017
19:52:47
Можно и адрес объекта писать.
Каждый раз разным будет от запуска к запуску. Не production-решение

Surreal
02.03.2017
19:53:24
Ээээ. Я new в production и не буду переопределять. Это для дебага.

Stanislav
02.03.2017
19:53:33
надо просто ::new сделать (size_t, line == __LINE__, file = __FILE__)

/dev
02.03.2017
19:54:03
Ээээ. Я new в production и не буду переопределять. Это для дебага.
Ну так у клиента тоже можно статистику собирать, чтоб потом смотреть, на что силы направлять

Alex Фэils?︙
02.03.2017
19:54:39
Surreal
02.03.2017
19:56:02
Ну так у клиента тоже можно статистику собирать, чтоб потом смотреть, на что силы направлять
Собирать в статистику каждый вызов new - это жирно. Обычно стектрейсы только собирают.

Stanislav
02.03.2017
19:57:26
Alex Фэils?︙
02.03.2017
19:57:43
почему мсвц?
Там такая дебаг-версия была

Но вообще баян

/dev
02.03.2017
19:57:52
Собирать в статистику каждый вызов new - это жирно. Обычно стектрейсы только собирают.
new можно пореже использовать, пулом пользоваться, да и кусками большими выделять

Да и оверхед не настолько заметный будет, если аккуратно делать

Surreal
02.03.2017
19:58:46
new можно пореже использовать, пулом пользоваться, да и кусками большими выделять
Типа логировать обычный new, а placement new оставить в покое?

/dev
02.03.2017
20:00:00
Типа логировать обычный new, а placement new оставить в покое?
К примеру. Или для placement new уже полегче статистики собирать.

Surreal
02.03.2017
20:03:48
С памятью сейчас на самом деле не так много проблем. Спасибо санитайзерам.

Мне вот в связи с этим интересны причины падения современных ААА игр.

/dev
02.03.2017
20:07:30
Мне вот в связи с этим интересны причины падения современных ААА игр.
Да от чего угодно. Одно из забавных, что видел: копипаста, в результате чего членом класса стал референс на шаред-поинтер. Редко, но падало. Не геймдев, а числодробилка

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