Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_stanislav
9 / 58 / 20
Регистрация: 16.08.2014
Сообщений: 394
Завершенные тесты: 2
#1

макрос COMBINE - C++

18.01.2016, 15:53. Просмотров 148. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Дан код:

C++
1
2
3
4
5
#define SUFFIX                5
#define COMBINE(a,b)       COMBINE1(a,b)
#define COMBINE1(a,b)      a##b
 
#define I_DELEGATE         COMBINE(IDelegate, SUFFIX)
И пояснение (статья тут - https://rsdn.ru/article/cpp/delegates.xml)
Обратите внимание на использование вспомогательного макроса COMBINE1. Если напрямую реализовать макрос COMBINE как #define COMBINE(a,b) a##b, то результатом подстановки COMBINE(IDelegate, SUFFIX) будет "IDelegateSUFFIX". А это совсем не то, что мы хотим получить. Поэтому использование COMBINE1 в данном случае необходимо.

Вопрос, почему компилятор не может сразу подставить вместо "SUFFIX" "5"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2016, 15:53     макрос COMBINE
Посмотрите здесь:

Если макрос на VBA переписать на С++, то макрос станет работать быстрее? - C++
Всем привет!) У меня есть макрос написанный в Екселе на VBA, если его переписать на С++ , то макрос станет работать быстрее? ...

Макрос - C++
Как в макросе интовское число разделить на число с запятой?

Макрос на с++ - C++
Здравствуйте, надо разработать макрос type(x,y) который объявляет x как некий тип с именем y.

Не работает макрос - C++
в лабораторной работе у меня надо написать макрос: создать макроопределение (некий PRINT_TYPE) в зависимости от которого новосозданная...

Сложный макрос - C++
Создать макрос buffer(n) который резервирует в памяти буфер емкостью n байтов и при каждом обращении выдает адрес очередного байта или...

макрос <L> не работает - C++
Подскажите, как исправить эту ошибку? Error 1 error C2440: 'initializing' : cannot convert from 'const wchar_t ' to...

Макрос DPrint - C++
С предыдущим я заданием я уже разобрался, а вот со следующим: &quot;Напишите макрос DPrint , проверяющий наличие режима отладки, и если режим...

Разработайте макрос - C++
Очень нужна ваша помощь, скоро контрольная, а я никак не могу разобраться 2. Разработайте макрос tolower(c) который преобразует символ c...

Макрос MyAssert - C++
Всем привет! Снова обращаюсь к вам за помощью. Задание такое: &quot;Напишите макрос MyAssert, который выводит сообщение об ошибке, имя файла...

Макрос-класс? - C++
Привет всем! Порылся в источниках teeworlds и нашёл вот что: class IClient : public IInterface { MACRO_INTERFACE(&quot;client&quot;, 0) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
2399 / 1093 / 237
Регистрация: 30.11.2013
Сообщений: 3,620
18.01.2016, 16:43     макрос COMBINE #2
_stanislav, https://github.com/isocpp/CppCoreGui...t-manipulation
Evg
Эксперт CАвтор FAQ
17469 / 5707 / 362
Регистрация: 30.03.2009
Сообщений: 15,663
Записей в блоге: 26
18.01.2016, 18:26     макрос COMBINE #3
http://www.cyberforum.ru/faq/thread5...ml#post2356359
Yandex
Объявления
18.01.2016, 18:26     макрос COMBINE
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru