Вопрос

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

EP003.#номакросы.См. EI001.Примечание от Stroustrup для написания.

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

Это было полезно?

Решение

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

ES042.#без спама.

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

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

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

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

#nomacros должен быть вложенным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top