KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Possible Duplicate: Can I redefine a C++ macro then define it back? Say I have some code that uses the name BLAH for a variable. Suppose BLAH is a common preprocessor definition in many standard header files (defined as 10), so if my file is included after any of them, the code breaks because BLAH is transformed into 10; therefore, I must #undef BLAH . But also other headers may depend on BLAH , so I must restore BLAH to it's original value after my header is done. Is it possible to do something like this: #ifdef BLAH #define BLAH_OLD BLAH #undef BLAH #endif ... code ... // restore BLAH to 10 #ifdef BLAH_OLD #define BLAH BLAH_OLD #end ? This doesn't work of course, because BLAH is not expanded to 10. I have tried doing something like #define EXPAND_AGAIN(x) x #define EXPAND(x) EXPAND_AGAIN(x) #define BLAH_OLD EXPAND(BLAH) but that doesn't work either, since EXPAND is taken literally and not expanded. I am using MSVC 2008/2010, but it would be lovely if the solution would work on most other compilers too.
Tags (comma-separated)
Save Edits
Cancel