[/ 
  (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]
