Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.


BOOST_VARIANT_ENUM_SHIFTED_PARAMS — Enumerate all but the first parameter for use with variant.


// In header: <boost/variant/variant_fwd.hpp>



When variadic templates are available and BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES is not defined, expands to variadic template list in the following manner:

            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(T)                    => TN...
            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(class T)              => class... TN
            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(class Something)      => class... SomethingN
            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(typename Something)   => typename... SomethingN
            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(Something)            => SomethingN...
            BOOST_VARIANT_ENUM_SHIFTED_PARAMS(Something)            => SomethingN...

Otherwise 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.