[/ (C) Copyright Edward Diener 2011-2015 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). ] [section:vmd_detail Functional groups] The particular constructs for which VMD has functionality can be divided into these categories: # Emptiness # Identifiers # Numbers # Types # Boost PP data types ( array, list, seq, and tuple ) # Sequences # Additional helper variadic macros The first six categories delineate the data types which VMD can parse. The last category presents additional macros which will prove helpful for a macro programmer using variadic macros with VMD and Boost PP. A general explanation of each of these categories will follow in the appropriate place in the documentation. VMD macros for working with the above data types which VMD understands can be divided into 'specific' and 'generic' macros. The specific macros ask whether some input data is a particular data type. The generic macros work with input data as any data type while allowing the programmer to separately query the type of data. Both specific and generic macros have their place and the macro programmer can decide which to use for any given situation. [endsect]