

// Copyright Aleksey Gurtovoy 2000-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/list.hpp" header

// -- DO NOT modify by hand!



namespace boost { namespace mpl {



template<

      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na

    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na

    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na

    , typename T12 = na, typename T13 = na, typename T14 = na

    , typename T15 = na, typename T16 = na, typename T17 = na

    , typename T18 = na, typename T19 = na

    >

struct list;



template<

     

    >

struct list<

          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list0<  >

{

    typedef list0<  >::type type;

};



template<

      typename T0

    >

struct list<

          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list1<T0>

{

    typedef typename list1<T0>::type type;

};



template<

      typename T0, typename T1

    >

struct list<

          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list2< T0,T1 >

{

    typedef typename list2< T0,T1 >::type type;

};



template<

      typename T0, typename T1, typename T2

    >

struct list<

          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list3< T0,T1,T2 >

{

    typedef typename list3< T0,T1,T2 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3

    >

struct list<

          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list4< T0,T1,T2,T3 >

{

    typedef typename list4< T0,T1,T2,T3 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    >

struct list<

          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list5< T0,T1,T2,T3,T4 >

{

    typedef typename list5< T0,T1,T2,T3,T4 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5

    >

struct list<

          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list6< T0,T1,T2,T3,T4,T5 >

{

    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list7< T0,T1,T2,T3,T4,T5,T6 >

{

    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >

{

    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na

        , na, na, na

        >

    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >

{

    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na

        , na, na, na

        >

    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >

{

    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na

        , na, na, na

        >

    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >

{

    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na

        , na, na, na, na

        >

    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >

{

    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na

        , na, na, na, na

        >

    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >

{

    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na

        , na, na, na, na

        >

    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >

{

    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na

        , na, na, na, na

        >

    : list15<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        >

{

    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    , typename T15

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, na, na, na, na

        >

    : list16<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15

        >

{

    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    , typename T15, typename T16

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, na, na, na

        >

    : list17<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16

        >

{

    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    , typename T15, typename T16, typename T17

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, T17, na, na

        >

    : list18<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, T17

        >

{

    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;

};



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    , typename T15, typename T16, typename T17, typename T18

    >

struct list<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, T17, T18, na

        >

    : list19<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, T17, T18

        >

{

    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;

};



/// primary template (not a specialization!)



template<

      typename T0, typename T1, typename T2, typename T3, typename T4

    , typename T5, typename T6, typename T7, typename T8, typename T9

    , typename T10, typename T11, typename T12, typename T13, typename T14

    , typename T15, typename T16, typename T17, typename T18, typename T19

    >

struct list

    : list20<

          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14

        , T15, T16, T17, T18, T19

        >

{

    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;

};



}}



