Come testare/espandere tutte le macro di funzione, in un file C/C++, senza eseguirlo attraverso un preprocessore? Per esempio, c'è un programma o un metodo che avrebbe cambiato questo:Espandi macro di funzioni C/C++ senza preprocessore
#include <iostream>
#define AAA(a) cout << "function " << a << endl
using namespace std;
int main(){
AAA(12);
}
in tutto questo?
#include <iostream>
using namespace std;
int main(){
cout << "function " << 12 << endl;
}
Non voglio correre attraverso preprocessore perché tutta la include nei file di fare il "gcc -E <>" uscita veramente brutto, voglio solo un paio di semplici espansioni di macro senza tutto l'overhead.
Probabilmente potresti scrivere del codice che usa clang come libreria e usarlo come preprocessore. A meno che grep -v^\ # includa myfile | gcc -E' sia abbastanza buono per te. –
Resharper per C++ ti consente di farlo. – chris
Grazie per il suggerimento Mats, guarderò in Clang. Tuttavia, itererà oltre 33k + linee di codice, quindi penso che il grep risulterebbe un po 'sporco. Sono su un mac adesso ma salterò su una VM e dare un colpo anche a Resharper. – Involution