Мне было интересно, можно ли определить макрос в C++, который определяет другой макрос, который можно использовать в более позднем коде. Возможно ли это, или препроцессор, используемый g ++, слишком ограничен для этого?Могут ли макросы в C++ определять макросы?
0
A
ответ
5
Нет, вы не можете определить макрос в расширении другого макроса.
1
Нет, макрос нельзя определить как макрос.
1
Вы можете сделать что-то вроде этого, это не совсем то, что вы ищете, но это может помочь.
#ifdef ENABLE_MACRO_1
#define PRINT_MACRO(varName) \
std::cout<<varName<<std::endl;
#else
#define PRINT_MACRO(varName) \
//do nothing
#endif
Таким образом, вы можете определить макрос в зависимости от другого условия предварительного прекурсора, которое было определено определенным.
1
Препроцессор выполняет только один проход по исходному коду, поэтому это невозможно. Тем не менее, вы можете использовать внешний инструмент для выполнения предварительной обработки перед компиляцией, например m4.
Смежные вопросы
- 1. Могут ли макросы принимать типы?
- 2. Могут ли макросы расширяться до сочетания шаблонов?
- 3. макросы, которые определяют макросы
- 4. Зачем определять макросы перед их определением?
- 5. Вложенные макросы C++?
- 6. Макропроизводящие макросы в C?
- 7. Макросы в языке C
- 8. Когда макросы C++ полезны?
- 9. Могут ли макросы использоваться для имитации функций шаблона C++?
- 10. Макросы и Visual C++
- 11. Макросы C/C++ вместо const
- 12. Листинг C Константы/Макросы
- 13. C++ макросы с памятью?
- 14. C Макросы - вставка оператора?
- 15. C++ макросы цикла
- 16. Зачем использовать макросы в C?
- 17. C Программирование Макросы умножения
- 18. программа C и Макросы
- 19. C препроцессорные макросы
- 20. Безопасно ли устанавливать макросы?
- 21. Являются ли макросы Clojure неизлечимыми?
- 22. C вложенные макросы
- 23. Что такое вычислительные макросы и макросы синтаксиса
- 24. Почему не рекомендуется определять макросы в файлах заголовков?
- 25. Могут ли макросы Scala определять внутри класса (как методы этого класса)?
- 26. Как далеко могут пройти макросы LISP?
- 27. Может ли конвертировать макросы в .exe, обходить макросы Outlook, блокирующие макросы на моем рабочем компьютере?
- 28. Перекрывающиеся макросы
- 29. Визуальные ++ проекта свойство @ $% макросы C
- 30. Функция как макросы в C
Это не «препроцессор, используемый g ++», который недостаточно мощный, это сам язык C++, который этого не позволяет. Если вы объясните, чего хотите, я уверен, что люди здесь могут придумать решение. – Lindydancer
Как бы вы были «ограничены» этим? Поделитесь тем, что вы пытаетесь выполнить. –