It would be very nice if BOOST_PP_OVERLOAD errored explicitly if variadic macros were not supported by the compiler, or at lease have a gentle reminder to the reader in BOOST_PP_OVERLOAD documentation (and, where appropriate, in other places) that variadic macros are only standard in c++11 and may not be supported on all compilers, hence one might get a BOOST_PP_OVERLOAD undeclared error.
The Boost preprocessor docs say under Topics -> Variadic Macros that: "In the documentation, headers which have variadic macros, and variadic macros themselves, have a notation of '(v)' appended to them. For the variadic macros themselves this signifies that BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable." and BOOST_PP_OVERLOAD does indeed have a '(v)' after its name in the documentation. However, I agree that this should be made more explicit, because just looking at the page for BOOST_PP_OVERLOAD, one may not know what the '(v)' signifies. Perhaps the '(v)' could be a link to the paragraph I quoted? Regards, Nate