/*=============================================================================
    Copyright (c) 2001-2011 Joel de Guzman

    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)

    This is an auto-generated file. Do not edit!
==============================================================================*/
namespace boost {
namespace fusion {
namespace detail {
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
struct vector_n_chooser
{
    typedef vector10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
};
template <>
struct vector_n_chooser<void_, void_, void_, void_, void_, void_, void_, void_, void_, void_>
{
    typedef vector0<> type;
};
template <typename T0>
struct vector_n_chooser<
    T0
    , void_, void_, void_, void_, void_, void_, void_, void_, void_>
{
    typedef vector1<T0> type;
};
template <typename T0, typename T1>
struct vector_n_chooser<
    T0, T1
    , void_, void_, void_, void_, void_, void_, void_, void_>
{
    typedef vector2<T0, T1> type;
};
template <typename T0, typename T1, typename T2>
struct vector_n_chooser<
    T0, T1, T2
    , void_, void_, void_, void_, void_, void_, void_>
{
    typedef vector3<T0, T1, T2> type;
};
template <typename T0, typename T1, typename T2, typename T3>
struct vector_n_chooser<
    T0, T1, T2, T3
    , void_, void_, void_, void_, void_, void_>
{
    typedef vector4<T0, T1, T2, T3> type;
};
template <typename T0, typename T1, typename T2, typename T3, typename T4>
struct vector_n_chooser<
    T0, T1, T2, T3, T4
    , void_, void_, void_, void_, void_>
{
    typedef vector5<T0, T1, T2, T3, T4> type;
};
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
struct vector_n_chooser<
    T0, T1, T2, T3, T4, T5
    , void_, void_, void_, void_>
{
    typedef vector6<T0, T1, T2, T3, T4, T5> type;
};
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
struct vector_n_chooser<
    T0, T1, T2, T3, T4, T5, T6
    , void_, void_, void_>
{
    typedef vector7<T0, T1, T2, T3, T4, T5, T6> type;
};
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
struct vector_n_chooser<
    T0, T1, T2, T3, T4, T5, T6, T7
    , void_, void_>
{
    typedef vector8<T0, T1, T2, T3, T4, T5, T6, T7> type;
};
template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
struct vector_n_chooser<
    T0, T1, T2, T3, T4, T5, T6, T7, T8
    , void_>
{
    typedef vector9<T0, T1, T2, T3, T4, T5, T6, T7, T8> type;
};
}
}
}
