Domanda

Elenco dei problemi di Evolution WG di 14 Febbraio 2004 ha ...

  

EP003. #nomacros. Vedi EI001. Nota di   Stroustrup da scrivere.

In termini approssimativi (o esatti), che cos'è #nomacros ed è disponibile come estensione ovunque? Sarebbe stato un utile strumento diagnostico in un recente progetto che prevedeva il porting di migliaia di file di C ++ vintage 1995 a un compilatore del 2005, rispetto all'alternativa di eseguire il codice attraverso il preprocessore ed esaminare i file .i per pacchetti a sorpresa.

È stato utile?

Soluzione

È solo una proposta sotto attenta considerazione per l'inclusione in C ++, ma non è ancora disponibile negli attuali compilatori. Se leggi più in basso nella pagina, dice:

ES042. #nospam.

Fornisce un meccanismo preprocessore per limitare le macro che entrano e escono da un ambito. Ad esempio:

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

Nessuna macro viene espansa tra #nomacros e #endnomacros se non esplicitamente abilitato da #in. Nessuna macro definita tra #nomacros e #endnomacros verrà definita dopo #endnomacros se non esplicitamente abilitata da #out.

Suggerimento di Bjarne Stroustrup. Dopo aver discusso nel CAE, è stato deciso di cercare una soluzione che consentisse le macro utilizzate dalle macro consentite da & # 8220; #in & # 8221; da utilizzare solo nell'espansione di tali macro.

#nomacros dovrebbe essere nidificato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top