Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS

| Home | Libraries | People | FAQ | More

## Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS

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

## Synopsis

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

    BOOST_VARIANT_ENUM_SHIFTED_PARAMS(param)

## Description

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.