søppel Skrevet 26. mai 2004 Del Skrevet 26. mai 2004 #define M_blah #include <iostream> M_blah using namespace std; int main() { return(0); } test2.cpp:3: error: invalid token test2.cpp:3: error: expected constructor, destructor, or type conversion before '<' token test2.cpp:3: error: expected `,' or `;' before '<' token Jeg er litt rusten på dette med macroer, hva skjer? Er det "stringification" som slår inn? ( http://gcc.gnu.org/onlinedocs/cpp/Stringif...Stringification ) Når jeg kjører dette igjennom pre-processoren (cpp) og titter på resultatet (altså før ting blir sendt til kompileren), får jeg dette: #include <iostream> using namespace std; int main() { return(0); } ..altså det ser jo ut til å fungere, M_blah blir erstattet med #include <iostream>. (Vet man normalt skal bruke template-kode fremfor macroer, men nå trenger jeg macroer. (Ja, jeg er helt sikker.)) Lenke til kommentar
kjetil7 Skrevet 26. mai 2004 Del Skrevet 26. mai 2004 (endret) Det nærmeste jeg kan få til er noe sånt: #define MYHEADER <iostream> #include MYHEADER ..eller den mest vanlige varianten: #if defined(M_blah) #include <string> #elif defined(NOHEADER) #else #include "MyString.h" #endif Tror ikke det er mulig å gjøre det som du skisserer. Kan heller ikke huske å ha sett noe lignende. Men mulig jeg tar feil. Er ikke noe macroekspert selv eller akkurat. Men jeg fant ikke noe i min dokumentasjon som var til hjelp. Endret 26. mai 2004 av kjetil7 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå