I want to have a macro MAC(...)
which expands to all except the first argument passed to it. How do I achieve this?
My first thoughts were to convert the __VA_ARGS__
to a BOOST_PP_TUPLE
and then do a POP_FRONT
operation:
#define MAC(...)\
BOOST_PP_TUPLE_POP_FRONT(BOOST_PP_VARIADIC_TO_TUPLE(__VA_ARGS__))
MAC(1,2,3)
But this simply expands to
BOOST_PP_TUPLE_POP_FRONT((1,2,3))
I tried adding the BOOST_PP_EXPAND
macro:
#define MAC(...)\
BOOST_PP_EXPAND(\
BOOST_PP_TUPLE_POP_FRONT BOOST_PP_VARIADIC_TO_TUPLE(__VA_ARGS__))
MAC(1,2,3)
But I get the same result. What I want is an output of
2, 3
How do I achieve this?
Using templates is not an option nor is using other libraries or tools (other than boost
).