
You can do something like:
#ifdef FOO # define FOO_ISSET 1 #else # define FOO_ISSET 0 #endif
# define BAR BOOST_PP_IF(FOO_ISSET, FOO, bar)
Yes, that's exactly my problem. I have many cases like this. and I would like to not have to write 5 lines for each. So it is rather something like this: #define FOO1 foo1 #define FOO2 foo2 ... #define FOO42 foo42 #define FOO24_OVERRIDE myFoo24 #ifdef FOO1_OVERRIDE # define FOO1_OVERRIDE_ISSET 1 #else # define FOO1_OVERRIDE_ISSET 0 #endif ... #ifdef FOO42_OVERRIDE # define FOO42_OVERRIDE_ISSET 1 #else # define FOO42_OVERRIDE_ISSET 0 #endif In my case it would be simpler to add: #define FOO1_OVERRIDE FOO1 ... #define FOO23_OVERRIDE FOO23 #define FOO25_OVERRIDE FOO25 ... #define FOO42_OVERRIDE FOO42 Then there would be no more need for the if. But I would like to not even have one line to write for each macro. Thanks for your answer.