#include <boost/preprocessor/punctuation/paren.hpp> #define X(x) x #define MACRO(p, x) X p x ) MACRO(BOOST_PP_LPAREN(), abc) // expands to abc #define Y(x) MACRO((10) Y BOOST_PP_LPAREN(), result) // expands to 10