Size: a a a

2020 March 23

IZ

Ilia Zviagin in pro.cxx
Vlad Ertel
Привет. Есть тут исповедующие макросы?

Есть такой код:

#define MACRO(__x__)
static_assert(SOME_MACRO##__x__ == __x__)

#define SOME_MACRO SOME_VALUE

MACRO(lalala)

При вызове MACRO(lalala) не подставляется SOME_MACRO. Что можно с этим поделать?
(комменты что макросы - зло, в чатик для холиваров)
Погоди, так же вообще нельзя, так не будет работать
источник

VE

Vlad Ertel in pro.cxx
Ilia Zviagin
Погоди, так же вообще нельзя, так не будет работать
оно работает на половину
источник

VE

Vlad Ertel in pro.cxx
то есть внутри макроса MACRO я могу раскрыть значение SOME_MACRO, но при этом конкатенация не работает
источник

IZ

Ilia Zviagin in pro.cxx
Vlad Ertel
Привет. Есть тут исповедующие макросы?

Есть такой код:

#define MACRO(__x__)
static_assert(SOME_MACRO##__x__ == __x__)

#define SOME_MACRO SOME_VALUE

MACRO(lalala)

При вызове MACRO(lalala) не подставляется SOME_MACRO. Что можно с этим поделать?
(комменты что макросы - зло, в чатик для холиваров)
SOME_MACRO##__x__

SOME_MACRO, x  -должны быть литералы
источник

FF

Flex Ferrum in pro.cxx
Vlad Ertel
Привет. Есть тут исповедующие макросы?

Есть такой код:

#define MACRO(__x__)
static_assert(SOME_MACRO##__x__ == __x__)

#define SOME_MACRO SOME_VALUE

MACRO(lalala)

При вызове MACRO(lalala) не подставляется SOME_MACRO. Что можно с этим поделать?
(комменты что макросы - зло, в чатик для холиваров)
У меня есть лучше код на эту тему:
https://github.com/vitaut/_._
источник

IZ

Ilia Zviagin in pro.cxx
Ilia Zviagin
SOME_MACRO##__x__

SOME_MACRO, x  -должны быть литералы
Не литералы конечно, идентификаторы
источник

IZ

Ilia Zviagin in pro.cxx
Vlad Ertel
то есть внутри макроса MACRO я могу раскрыть значение SOME_MACRO, но при этом конкатенация не работает
Да так просто нельзя
источник

PK

Pavel Kazakov in pro.cxx
красивый проект, проникся им почти сразу как он появился
источник

FF

Flex Ferrum in pro.cxx
Pavel Kazakov
красивый проект, проникся им почти сразу как он появился
Я бы сказал, концептуальный. :)
источник

PK

Pavel Kazakov in pro.cxx
у нас даже дебаты на работе были, а уж не использовать ли его? ошибки логировать, например
источник

FF

Flex Ferrum in pro.cxx
Pavel Kazakov
у нас даже дебаты на работе были, а уж не использовать ли его? ошибки логировать, например
Ага. А тут мы ошибки в (_*_) пушим. Ага. :)
источник

PK

Pavel Kazakov in pro.cxx
это серьезная ошибка, критическая, можно в (_._) простые пихать
источник

AN

Alexander N in pro.cxx
Лог через жопу? Что-то новенькое
источник

PK

Pavel Kazakov in pro.cxx
не "через", а "в": как бы, "ошибка с размаху входит в (_._) проекта"
источник

FF

Flex Ferrum in pro.cxx
Alexander N
Лог через жопу? Что-то новенькое
Всё возможно в мире C++. Только вот с макросами не выходит. :)
источник

AN

Alexander N in pro.cxx
Эх хотя бы compile time рефлексию б
источник

F

Fox in pro.cxx
Alexander N
Лог через жопу? Что-то новенькое
источник

FF

Flex Ferrum in pro.cxx
Alexander N
Эх хотя бы compile time рефлексию б
Не надо о грустном... Впрочем, могу предложить парочку проектов, которые завозят такую рефлексию.
источник

FF

Flex Ferrum in pro.cxx
Так я ж там выше эту же ссылку дал, после неё и обсуждаем. :)
источник

F

Fox in pro.cxx
Flex Ferrum
Так я ж там выше эту же ссылку дал, после неё и обсуждаем. :)
Не заметил, извиняюсь
источник