Pregunta

El Lista de problemas de Evolution WG de 14 Febrero de 2004 tiene ...

  

EP003. #nomacros. Ver EI001. Nota por   Stroustrup para ser escrito.

En términos generales (o exactos), ¿qué es #nomacros, y está disponible como una extensión en cualquier lugar? Habría sido una herramienta de diagnóstico útil en un proyecto reciente que implica portar miles de archivos de C ++ de 1995 a un compilador de 2005, en comparación con la alternativa de ejecutar el código a través del preprocesador y examinar los archivos .i en busca de paquetes sorpresa.

¿Fue útil?

Solución

Es solo una propuesta bajo consideración activa para su inclusión en C ++, pero aún no está disponible en los compiladores actuales. Si lee más abajo en la página, dice:

ES042. #nospam.

Proporcione un mecanismo de preprocesador para limitar las macros que entran y salen de un ámbito. Por ejemplo:

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

No se expanden macros entre #nomacros y #endnomacros a menos que #in habilite explícitamente. No se definirán macros definidas entre #nomacros y #endnomacros después de #endnomacros a menos que #out lo habilite explícitamente.

Sugerencia de Bjarne Stroustrup. Después de la discusión en el EWG, se decidió buscar una solución que permitiera las macros utilizadas por las macros permitidas por & # 8220; #in & # 8221; para ser utilizado en la expansión de tales macros solamente.

#nomacros debería anidar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top