Qu'est-ce que #nomacros (EP003) et est-il vivant?
-
20-08-2019 - |
Question
Le Liste des problèmes du groupe de travail Evolution Février 2004 a ...
EP003. #nomacros. Voir EI001. Note de Stroustrup à écrire.
En termes simples (ou exacts), qu'est-ce que #nomacros
et est-il disponible en tant qu'extension n'importe où? Cela aurait été un outil de diagnostic utile dans un projet récent impliquant le portage de milliers de fichiers de C ++ datant de 1995 dans un compilateur de 2005, par rapport à l’exécution du code par le préprocesseur et à l’examen des fichiers .i à la recherche de packages surprises.
La solution
Il s’agit simplement d’une proposition à l’étude en vue d’une inclusion en C ++, mais qui n’est toujours pas disponible dans les compilateurs actuels. Si vous lisez plus bas, il est écrit:
ES042. #nospam.
Fournissez un mécanisme de préprocesseur pour limiter les macros entrant et sortant d'une étendue. Par exemple:
#nomacros
#in A B
…
#out A X
#endnomacros
Aucune macros n'est développée entre #nomacros et #endnomacros sauf si explicitement activée par #in. Aucune macro définie entre #nomacros et #endnomacros ne sera définie après #endnomacros, sauf si explicitement activée par #out.
Suggestion de Bjarne Stroustrup. Après discussion au sein du groupe de travail électronique, il a été décidé de rechercher une solution autorisant les macros utilisées par les macros autorisées par & # 8220; #in & # 8221; à utiliser uniquement pour l'expansion de telles macros.
#nomacros devrait imbriquer.