unspecified
Simplifies declaration of recursive `variant` types.
unspecified
unspecified

`type` has behavior equivalent in every respect to some `variant< U1, U2, ..., UN >`, where each type `Ui` is the result of the corresponding type `Ti` undergone a transformation function. The following pseudo-code specifies the behavior of this transformation (call it `substitute`):

- If `Ti` is `boost::recursive_variant_` then: `variant< U1, U2, ..., UN >`;
- Else if `Ti` is of the form `X *` then: `substitute(X) *`;
- Else if `Ti` is of the form `X &` then: `substitute(X) &`;
- Else if `Ti` is of the form `R (*)( X1, X2, ..., XN )` then: `substitute(R) (*)( substitute(X1), substitute(X2), ..., substitute(XN) )`;
- Else if `Ti` is of the form `F < X1, X2, ..., XN >` then: `F< substitute(X1), substitute(X2), ..., substitute(XN) >`;
- Else: `Ti`.

Note that cv-qualifiers are preserved and that the actual process is generally a bit more complicated. However, the above does convey the essential idea as well as describe the extent of the substititions.

Use of `make_recursive_variant` is demonstrated in .

Portability: Due to standard conformance issues in several compilers, `make_recursive_variant` is not universally supported. On these compilers the library indicates its lack of support via the definition of the preprocessor symbol `BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT`.

`boost::variant`< unspecified >

Exposes a recursive `variant` whose bounded types are the elements of the given type sequence.

variant< unspecified >

`type` has behavior equivalent in every respect to ``make_recursive_variant`< Sequence[0], Sequence[1], ... >::type` (where `Sequence[i]` denotes the i-th element of `Sequence`), except that no upper limit is imposed on the number of types.

Notes:

- `Sequence` must meet the requirements of MPL's Sequence concept.
- Due to standard conformance problems in several compilers, `make_recursive_variant_over` may not be supported on your compiler. See `BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT` for more information.