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

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

Войти
Регистрация
Восстановить пароль
 
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 605
#1

Не работает макрос - C++

18.10.2016, 13:29. Просмотров 148. Ответов 3
Метки нет (Все метки)

Добрый день.
Есть макросы:
C++
1
2
3
4
5
6
#define ACTION(var, value) int var = value;
 
#define EXEC_ACTION(value, handler, ...) handler(value, __VA_ARGS__)
#define EXTEND_MARCO_ARGS(...) __VA_ARGS__
#define ENUMERATE_MARCO_ARGS(args) EXTEND_MARCO_ARGS args
#define DO(value, data) EXEC_ACTION(value, ENUMERATE_ARGS(data))
Далее он вызывается:
C++
1
DO(testIntVar, (ACTION, 123))
Должно раскрыться в:
C++
1
int testIntVar = 123;
Однако мне пишет:
Код
ошибка: 'ACTION' does not name a type
Почему? Как исправить? Макрос DO по задумке должен вторым аргументом принимать параметры в круглых скобках.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2016, 13:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает макрос (C++):

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

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

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

Макрос работает, а код, преобразованный из макроса - не работает - MS Access
Здравствуйте! Подскажите пожалуйста, почему функция выдаёт ошибку &quot;32538: в TempVar можно хранить только данные. Нельзя использовать для...

Не работает макрос - MS Excel
Добрый день помогите макрос не срабатывает хотя должен переносить данные с одного листа на другой он переносит но не все данные.ublic Sub...

Не работает макрос - VBA
Решил сделать макрос который бы, из одного журнала вырезал ячейки с информацией о человеке и вставлял в другой,идентификатором для поиска...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 519
Завершенные тесты: 5
18.10.2016, 13:32 #2
C++
1
#define ACTION(var, value) var = value;
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 605
18.10.2016, 15:56  [ТС] #3
Нее, конечно нет. У нас же объявление переменной, ее без типа нельзя объявить. Тут макрос ACTION в принципе можно заменить что-нибудь свое.

Добавлено через 2 часа 8 минут
Так, видимо никто ничего не знает...

Упростим задачу. Почему не раскрывается как надо это:[CCP]EXEC_ACTION(testIntVar, EXTEND_MARCO_ARGS (ACTION, 123) )[/CCP]?
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 519
Завершенные тесты: 5
18.10.2016, 16:02 #4
Вот так:

C++
1
EXEC_ACTION(100, pointer_to_function, 1, 2, 3);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2016, 16:02
Привет! Вот еще темы с ответами:

Не работает макрос на windows10 - SolidWorks
Всем привет. Помогите решить проблему. Макрос работает на 32 битах, на 64 битах не работает. Открыть его не могу, никто пароль не помнит.

Не работает макрос в Windows 64 - VBA
Что необходимо сделать, чтобы это исправить? Документ с макросом, который очень удобен для пакетной замены какой-либо фразы во многих...

NET_BUFFER_DATA_LENGTH: не работает макрос - C++ WinAPI
Макрос при запросе длины обращается к несуществующему полю DataLength структуры NET_BUFFER. Я уже не знаю, что делать. Может, инклудник...

Макрос не работает в 64bit - VBA
Здравствуйте, макросы были написаны на 32-разрядной системе. заменили компы на вин 8 64бит. Столкнулся с проблемой &quot;the code in...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.10.2016, 16:02
Ответ Создать тему
Опции темы

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