Provides a forward declaration of the
boost::variant and
boost::recursive_variant class
templates and the
boost::recursive_variant_ tag
type. Also defines several preprocessor symbols.Expands to the length of the
template parameter list for variant.Note: Conforming implementations
of variant must allow at least ten bounded types. That is,
BOOST_VARIANT_LIMIT_TYPES >= 10 must be
true.Enumerate parameters for use with
boost::variant.Expands to a comma-separated sequence of length
BOOST_VARIANT_LIMIT_TYPES,
where each element in the sequence consists of the concatenation
of param with its zero-based index into the
sequence. That is, param ## 0, param ## 1, ..., param ##
BOOST_VARIANT_LIMIT_TYPES - 1.Rationale: This macro
greatly simplifies for the user the process of declaring
variant
types in function templates or explicit partial specializations
of class templates, as shown in the tutorial
section.Enumerate all but the first parameter for use
with
boost::variant.Expands to a comma-separated sequence of length
BOOST_VARIANT_LIMIT_TYPES -
1, where each element in the sequence consists of the
concatenation of param with its one-based
index into the sequence. That is, param ## 1, ..., param
## BOOST_VARIANT_LIMIT_TYPES - 1.Note: This macro results
in the same expansion as
BOOST_VARIANT_ENUM_PARAMS --
but without the first term.Indicates absence of type sequence support in
boost::variant.Defined only if the
boost::variant<
type-sequence > syntax is not
supported for some reason on the current platform or
compiler.