Stiamo eseguendo un po 'di pulizia del codice, riparando i confronti firmati/non firmati, eseguendo analisi statiche, ecc. Sul codice base di C, C++ e Java.Pulizia del codice C/C++ rivela problemi con i macro variadici
Uno degli avvertimenti stiamo ottenendo è
warning: ISO C does not permit named variadic macros
e la sua compagna di avvertimento
warning: ISO C99 requires rest arguments to be used
Ora, nel codice C ho usato il C99 standard variadic macro per risolvere il problema, ma nel C++ codice, qual è la risposta corretta? Utilizzando lo stesso stile C99 si ottiene un avviso diverso
warning: anonymous variadic macros were introduced in C99
per cui non vedo alcuna risposta.
Stiamo usando GCC (G ++) 4.4.3 in Linux.
spero ci sia qualche bandiera, o un altro metodo che può correggere, o disabilitarlo per la sezione specifica del codice - ma la sua per la registrazione che viene utilizzato in quasi tutti i file ...
possibile duplicato del [Sei variadic macro non standard?] (Http://stackoverflow.com/questions/4786649/are-variadic-macros-nonstandard) –
Usare C++ 11. Digitare '-std = C++ 0x' o' -std = C++ 11' sulla riga di comando GCC. O semplicemente ignori l'avvertimento. –
Sì, usare C++ 11 non è ancora nelle carte, non è ancora supportato abbastanza bene (ancora) – Petriborg