Home | Libraries | People | FAQ | More |
boost::make_recursive_variant — Simplifies declaration of recursive variant types.
template<typename T1, typename T2 = unspecified, ..., typename TN = unspecified> class make_recursive_variant { public: // types typedef boost::variant< unspecified > type; };
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):
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 the section called “Recursive types with make_recursive_variant”.
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.
Copyright © 2002, 2003 Eric Friedman, Itay Maman |