2009-06-26 7 views
3

Le Evolution WG Issues List of 14 February 2004 a ...Qu'est-ce que #nomacros (EP003), et est-il vivant?

EP003. #nomacros. Voir EI001. Note par Stroustrup à écrire.

En termes grossiers (ou exacts), qu'est-ce que #nomacros, et est-il disponible comme extension partout? Il aurait été un outil de diagnostic utile dans un projet récent impliquant le portage de milliers de fichiers C++ 1995 vers un compilateur 2005, comparé à l'alternative d'exécuter le code via le préprocesseur et d'examiner les fichiers .i pour les paquets surprise.

Répondre

1

Il s'agit simplement d'une proposition à prendre en compte pour l'inclusion dans C++, mais pas encore disponible dans les compilateurs actuels. Si vous lisez plus bas sur la page, il est dit:

ES042. #Pas de spam.

Fournir 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 macro n'est étendue entre #nomacros et #endnomacros sauf si explicitement activé 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 dans l'EWG, il a été décidé de rechercher une solution permettant aux macros utilisées par les macros autorisées par "#in" d'être utilisées dans l'expansion de telles macros seulement.

#nomacros doit s'emboîter.

Questions connexes