| Home | Libraries | People | FAQ | More

##### make_map

###### Description

Create a `map` from one or more key/data pairs.

###### Synopsis

    template <
        typename K0, typename K1,... typename KN
      , typename T0, typename T1,... typename TN>
    typename result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type
    make_map(T0 const& x0, T1 const& x1... TN const& xN);

The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE` [10] elements, where `FUSION_MAX_VECTOR_SIZE` is a user definable predefined maximum that defaults to `10`. You may define the preprocessor constant `FUSION_MAX_VECTOR_SIZE` before including any Fusion header to change the default. Example:

    #define FUSION_MAX_VECTOR_SIZE 20

###### Parameters

Parameter | Requirement | Description
--- | --- | ---
`K0, K1,... KN` | The key types | Keys associated with `x0, x1,... xN`
`x0, x1,... xN` | Instances of `T0, T1,... TN` | The arguments to `make_map`

###### Expression Semantics

    make_map<K0, K1,... KN>(x0, x1,... xN);

Return type: `result_of::make_map``<K0, K0,... KN, T0, T1,... TN>::type`

Semantics: Create a `map` from `K0, K1,... KN` keys and `x0, x1,... xN` data.

Precondition: There may be no duplicate key types.

###### Header

    #include <boost/fusion/container/generation/make_map.hpp>
    #include <boost/fusion/include/make_map.hpp>

###### Example

    make_map(
        make_pair<int>('X')
      , make_pair<double>("Men"))

###### See also

`boost::ref`, `fusion::pair`

[10] `map` is implemented in terms of the vector. That is why we reuse `FUSION_MAX_VECTOR_SIZE`