
Илья
02.03.2017
19:21:25
DRY же

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

Илья
02.03.2017
19:22:32

Mikhail
02.03.2017
19:23:26

Google

Stanislav
02.03.2017
19:23:28

/dev
02.03.2017
19:26:43

Илья
02.03.2017
19:27:28

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

Илья
02.03.2017
19:30:37

Stanislav
02.03.2017
19:30:37

melancholiac
02.03.2017
19:30:44
интересно
жалко нет примера из корютилсов, их там много было

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

/dev
02.03.2017
19:32:47

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

Stanislav
02.03.2017
19:32:56

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
а у меня макросами половина грамматики задефайнена >_<

Stanislav
02.03.2017
19:35:57

Anna
02.03.2017
19:36:42

Илья
02.03.2017
19:37:01
как-то так

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
адская работенка у меня ?

Илья
02.03.2017
19:39:37

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-структур

Stanislav
02.03.2017
19:41:32

Илья
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

melancholiac
02.03.2017
19:42:51

Stanislav
02.03.2017
19:43:25

Илья
02.03.2017
19:43:36

Alex Фэils?︙
02.03.2017
19:44:13
Как 2020 выйдет, заменю

Илья
02.03.2017
19:44:51

Stanislav
02.03.2017
19:44:52
кстати, по истории С

Surreal
02.03.2017
19:45:06

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

Google

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

Alex Фэils?︙
02.03.2017
19:45:30

Surreal
02.03.2017
19:45:49

Илья
02.03.2017
19:45:51

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

Surreal
02.03.2017
19:47:59

Илья
02.03.2017
19:48:01

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

Surreal
02.03.2017
19:48:53

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

Stanislav
02.03.2017
19:49:16
ЛИНИЯ

/dev
02.03.2017
19:49:59

Google

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

Stanislav
02.03.2017
19:50:51

/dev
02.03.2017
19:51:38

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

/dev
02.03.2017
19:52:47

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

Alex Фэils?︙
02.03.2017
19:54:39

Surreal
02.03.2017
19:56:02

Stanislav
02.03.2017
19:57:26

Alex Фэils?︙
02.03.2017
19:57:43
Но вообще баян

/dev
02.03.2017
19:57:52
Да и оверхед не настолько заметный будет, если аккуратно делать

Surreal
02.03.2017
19:58:46

/dev
02.03.2017
20:00:00

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

/dev
02.03.2017
20:07:30