I am relatively new to programming, and I am trying to learn to use wxWidgets in C++ (with Visual Studio 2010).
I was looking through the wxWidgets header file “app.h” and I see some #define directives that I can’t understand. Here is an example:
#define wxIMPLEMENT_APP(appname) \
wxIMPLEMENT_WX_THEME_SUPPORT \
wxIMPLEMENT_APP_NO_THEMES(appname)"
I’m used to seeing #define with one “identifier” and one “replacement”, so I can’t understand if this macro has two “identifiers” (wxIMPLEMENT_APP(appname) and wxIMPLEMENT_WX_THEME_SUPPORT) and one “replacement” (wxIMPLEMENT_APP_NO_THEMES (appname)), or one “identifier” (wxIMPLEMENT_APP(appname)) and two “replacements” (wxIMPLEMENT_WX_THEME_SUPPORT and wxIMPLEMENT_APP_NO_THEMES(appname)).
How am I to understand this macro?
I tried looking online and in text books, searching under “macros”, “pre-processor directives”, “text replacement macros”, “#define directive”, and similar, but I could not find any examples with explanation that look like the one I have here.
This preprocessor macro has a single replacement split across multiple lines. The
\at the end of the line lets you write a single “logical” line on multiple lines of text.Everything that follows
wxIMPLEMENT_APP(appname)will be placed in the text of the program whenwxIMPLEMENT_APP(appname)pattern is matched; presumably, both these definitions will be further processed by the preprocessor, because they look like references to other macro definitions.