The current BOOST_PP_EMPTY() is not variadic, so its usefulness in BOOST_PP_IF() and the like is limited to when there are no arguments/params in the resultant call.
For example, this doesn't work:
#define X(a, b) result(a, b)
#define MACRO(a, b, c) BOOST_PP_IF(c, X, BOOST_PP_EMPTY)(a, b)
As explained in #34, changing the signature of BOOST_PP_EMPTY() is impractical, and another solution exists: BOOST_VMD_EMPTY(...) in boost/vmd/empty.hpp.
So this is a very minor issue, but it would be nice if either:
- There were a
BOOST_PP_IGNORE(...) to do this, or...
- The reference docs for the
BOOST_PP_EMPTY could also point to the VMD macro to use instead.