Что такое #nomacros (EP003) и жив ли он? - PullRequest
3 голосов
/ 26 июня 2009

Список проблем Evolution WG от 14 февраля 2004 г. содержит ...

EP003. #nomacros. Смотри EI001. Примечание по Страуструп должен быть написан.

В грубом (или точном) смысле, что такое #nomacros и доступно ли оно как расширение где-либо? Это было бы полезным диагностическим инструментом в недавнем проекте, включающем портирование тысяч файлов C ++ 1995 года выпуска в компилятор 2005 года по сравнению с альтернативой запуска кода через препроцессор и проверки файлов .i на наличие неожиданных пакетов.

1 Ответ

1 голос
/ 30 июня 2009

Это просто предложение, которое активно рассматривается для включения в C ++, но все еще недоступно в текущих компиляторах. Если вы читаете дальше вниз по странице, там написано:

ES042. # NoSpam.

Предоставляет механизм препроцессора для ограничения макросов, входящих и выходящих из области. Например:

#nomacros
#in A B
…
#out A X
#endnomacros

Макросы между #nomacros и #endnomacros не раскрываются, если это явно не разрешено #in. Никакие макросы, определенные между #nomacros и #endnomacros, не будут определены после #endnomacros, если это явно не разрешено # out.

Предложение Бьярне Страуструпа. После обсуждения в EWG было решено искать решение, позволяющее использовать макросы, используемые макросами, разрешенные «#in» только для расширения таких макросов.

# Кочевник должен гнездиться.

...