BringMeAnother
BringMeAnother

Reputation: 627

Can I make a macro to execute debug or release code?

For example if I had this code:

#ifdef _DEBUG
    mPluginsCfg = "plugins_d.cfg";
#else
    mPluginsCfg = "plugins.cfg";
#endif

Can I define a macro that looks like

#define DEBUG_RELEASE(debug_code, release_code)

and then use it like this;

DEBUG_RELEASE(mPluginsCfg = "plugins_d.cfg";,mPluginsCfg = "plugins.cfg";)

Upvotes: 1

Views: 160

Answers (1)

Anton Kovalenko
Anton Kovalenko

Reputation: 21507

I'm sure that it works, and I'm almost sure that it is defined to work.

#ifdef _DEBUG
#define DEBUG_RELEASE(d,r) d
#else
#define DEBUG_RELEASE(d,r) r
#endif

I'm unsure whether I've seen anything uglier in the wonderful world of preprocessor macros.

Upvotes: 1

Related Questions