
This may interest end-users who use macros/Boost PP in their own code to do preprocessor metaprogramming. I have put in the Boost sandbox the Variadic Macro Data library, or VMD. This library supplies variadic macro functionality and integrates variadic macros with the Boost PP library without changing the latter in any way. The library in the sandbox is in the variadic_macro_data folder. The library is a header-only library of macros. There is documentation and tests and the appropriate jamfiles for both. To build the documentation you need doxygen but I have also provided documentation in an html subfolder. Access to the Boost sandbox is explained on the Boost web site at http://www.boost.org/community/sandbox.html. The main use of the library is to be able to pass variadic data to macros, and in particular to extract variadic data elements or convert variadic data to Boost PP data types for use by Boost PP. The library also enhances the functionality of Boost PP tuple data. Installation is simply to take the boost and lib subfolders of the library and copy them to a Boost installation, preferable the trunk where support for variadic macros has been added in Boost config in the form of a BOOST_NO_VARIADIC_MACROS which is defined for compilers/versions which do NOT support variadic macros. To use the macros in the library, just "#include <boost/variadic_macro_data/VariadicMacroData.hpp>". Compilers which support variadic macros are gcc 3.0 and above and VC8 and above among a few others. You could also use the library on any installed Boost installation if the compiler you are using supports variadic macros. There is a discussion in the doc of why you might choose to use variadic macros rather than a Boost PP data type in a macro tailored for end-users. Comments, suggestions, and bug reports are welcome. Edward Diener