...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
VMD has a few object-like macros which the end-user of the library can use to determine or change the way variadic macros are used in the library.
The macro BOOST_PP_VARIADICS is part of the Boost PP library, not part of VMD. It is used to denote whether variadic data support exists for the particular compiler the end-user is using. VMD also uses this macro to determine whether variadic data support exists. An end-user of VMD can use this macro in his own design to determine whether or not variadic macros are supported. Furthermore an end-user of VMD can set this macro to 0 or non-zero, before including a VMD header file, to force VMD to treat the particular compiler being used as not supporting or supporting variadic macros. If a compiler does not support variadic macro none of the macros in VMD are defined.
The macro BOOST_VMD_ASSERT_DATA controls whether or not an assert macro will check its data. The default is that in compiler debug mode it will check the data while in compiler release mode it will not check its data. The end-user can change this by setting the macro to 0 to not check the data, or non-zero to check the data, before including a VMD header file, or check the value if necessary after including a VMD header file.