Создать идентификатор из макропараметра - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть макрос, в котором я передаю аргумент:

#define bind(id) function[function_id::id] = std::bind(otherFunction::id, std::placeholders::_1)

В этом случае id распространяется на все, что я пишу в макрос во время его использования.Однако я хотел бы добавить некоторые символы к одному из них, например:

#define bind(id) function[function_id::id] = std::bind(otherFunction::add_id, std::placeholders::_1)

, чтобы первая замена id была оригинальной, а вторая - суффиксом add_.Когда я делаю это второе расширение с add_, оно не расширяется, поэтому я получаю add_id вместо add_whatever_I_wanted.

В этом случае я попытался использовать скобки и написать это так:

#define bind(id) function[function_id::id] = std::bind(otherFunction::add_(id), std::placeholders::_1)

И это сработало частично, теперь id заключено в скобки и результат расширения равен

add_(whatever_I_wanted)

Вместо

add_whatever_I_wanted

Это убивает менякак я хочу использовать его довольно часто.Есть ли обходной путь?

...