Boost logo

Boost Users :

Subject: [Boost-users] Variadic Macro Data library in the Boost sandbox
From: Edward Diener (eldiener_at_[hidden])
Date: 2010-10-11 20:43:42


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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net