

// Copyright Aleksey Gurtovoy 2000-2004

// Copyright David Abrahams 2003-2004

//

// Distributed under the Boost Software License, Version 1.0. 

// (See accompanying file LICENSE_1_0.txt or copy at 

// http://www.boost.org/LICENSE_1_0.txt)

//



// Preprocessed version of "boost/mpl/map/map10.hpp" header

// -- DO NOT modify by hand!



namespace boost { namespace mpl {



template< typename Map>

struct m_at< Map,0 >

{

    typedef typename Map::item0 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 1,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item0;

};



template<

      typename P0

    >

struct map1

    : m_item<

          1

        , typename P0::first

        , typename P0::second

        , map0<  >

        >

{

    typedef map1 type;

};



template< typename Map>

struct m_at< Map,1 >

{

    typedef typename Map::item1 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 2,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item1;

};



template<

      typename P0, typename P1

    >

struct map2

    : m_item<

          2

        , typename P1::first

        , typename P1::second

        , map1<P0>

        >

{

    typedef map2 type;

};



template< typename Map>

struct m_at< Map,2 >

{

    typedef typename Map::item2 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 3,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item2;

};



template<

      typename P0, typename P1, typename P2

    >

struct map3

    : m_item<

          3

        , typename P2::first

        , typename P2::second

        , map2< P0,P1 >

        >

{

    typedef map3 type;

};



template< typename Map>

struct m_at< Map,3 >

{

    typedef typename Map::item3 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 4,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item3;

};



template<

      typename P0, typename P1, typename P2, typename P3

    >

struct map4

    : m_item<

          4

        , typename P3::first

        , typename P3::second

        , map3< P0,P1,P2 >

        >

{

    typedef map4 type;

};



template< typename Map>

struct m_at< Map,4 >

{

    typedef typename Map::item4 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 5,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item4;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    >

struct map5

    : m_item<

          5

        , typename P4::first

        , typename P4::second

        , map4< P0,P1,P2,P3 >

        >

{

    typedef map5 type;

};



template< typename Map>

struct m_at< Map,5 >

{

    typedef typename Map::item5 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 6,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item5;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    , typename P5

    >

struct map6

    : m_item<

          6

        , typename P5::first

        , typename P5::second

        , map5< P0,P1,P2,P3,P4 >

        >

{

    typedef map6 type;

};



template< typename Map>

struct m_at< Map,6 >

{

    typedef typename Map::item6 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 7,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item6;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    , typename P5, typename P6

    >

struct map7

    : m_item<

          7

        , typename P6::first

        , typename P6::second

        , map6< P0,P1,P2,P3,P4,P5 >

        >

{

    typedef map7 type;

};



template< typename Map>

struct m_at< Map,7 >

{

    typedef typename Map::item7 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 8,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item7;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    , typename P5, typename P6, typename P7

    >

struct map8

    : m_item<

          8

        , typename P7::first

        , typename P7::second

        , map7< P0,P1,P2,P3,P4,P5,P6 >

        >

{

    typedef map8 type;

};



template< typename Map>

struct m_at< Map,8 >

{

    typedef typename Map::item8 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 9,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item8;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    , typename P5, typename P6, typename P7, typename P8

    >

struct map9

    : m_item<

          9

        , typename P8::first

        , typename P8::second

        , map8< P0,P1,P2,P3,P4,P5,P6,P7 >

        >

{

    typedef map9 type;

};



template< typename Map>

struct m_at< Map,9 >

{

    typedef typename Map::item9 type;

};



template< typename Key, typename T, typename Base >

struct m_item< 10,Key,T,Base >

    : m_item_< Key,T,Base >

{

    typedef pair< Key,T > item9;

};



template<

      typename P0, typename P1, typename P2, typename P3, typename P4

    , typename P5, typename P6, typename P7, typename P8, typename P9

    >

struct map10

    : m_item<

          10

        , typename P9::first

        , typename P9::second

        , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 >

        >

{

    typedef map10 type;

};



}}

