This macro is intended to avoid the use of
automatic-recursion at deep expansion depths.
Automatic-recursion at such depths can be inefficient on some preprocessors.
It is not intended to be used directly with the invocation of macros with a
_R suffix such as:
BOOST_PP_LIST_ENUM_R(BOOST_PP_DEDUCE_R(), (a, (b, (c, BOOST_PP_NIL))))
If it is used in this context, the
_R macro will fail.
The
_R macros directly concatenate to the
r parameter that is passed to them,
which would prevent
BOOST_PP_DEDUCE_R() from expanding.
Furthermore, it is pointless to use this macro in a situation such as this
because it would already be too late to gain any efficiency.