
Hello all, I am using the VMD Boost Library Under Construction to handle variadic macros. On MVSC, this library uses PP_ADD to calculate the variadic size VMD_SIZE(__VA_ARGS__). However, it does not provide a reentrant version of VMD_SIZE (like VMD_SIZE_D) which is a problem when nesting size calculations within while iterations because PP_ADD uses PP_WHILE. I think, if this implementation is kept, the library should also provide the reentrant variant VMD_SIZE_D that invokes PP_ADD_D instead of PP_ADD. #if defined(BOOST_MSVC) #define BOOST_DETAIL_PP_VMD_DETAIL_DATA_SIZE(...) \ BOOST_PP_ADD(BOOST_DETAIL_PP_VMD_DETAIL_APPLY(BOOST_DETAIL_PP_VMD_DETAIL_ARG_N, (__VA_ARGS__, BOOST_DETAIL_PP_VMD_DETAIL_RSEQ_N())),0) \ /**/ #else #define BOOST_DETAIL_PP_VMD_DETAIL_DATA_SIZE(...) \ BOOST_DETAIL_PP_VMD_DETAIL_APPLY(BOOST_DETAIL_PP_VMD_DETAIL_ARG_N, (__VA_ARGS__, BOOST_DETAIL_PP_VMD_DETAIL_RSEQ_N())) \ /**/ #endif BTW, why is PP_ADD(size, 0) used on MSVC? If this is just for forcing proper macro expansion, I think other techniques (like the ones used by PP_EXPAND) should be used so no PP_WHILE reentrancy dependency is introduced. Thanks, --Lorenzo -- View this message in context: http://boost.2283326.n4.nabble.com/boost-preprocessor-variadic-VMD-SIZE-usin... Sent from the Boost - Dev mailing list archive at Nabble.com.