// 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/vector_c.hpp" header | |
// -- DO NOT modify by hand! | |
namespace boost { namespace mpl { | |
namespace aux { | |
template< int N > | |
struct vector_c_chooser; | |
} | |
namespace aux { | |
template<> | |
struct vector_c_chooser<0> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector0_c< | |
T | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<1> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector1_c< | |
T, T(C0) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<2> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector2_c< | |
T, T(C0), T(C1) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<3> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector3_c< | |
T, T(C0), T(C1), T(C2) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<4> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector4_c< | |
T, T(C0), T(C1), T(C2), T(C3) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<5> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector5_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<6> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector6_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<7> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector7_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<8> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector8_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<9> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector9_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<10> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector10_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<11> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector11_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<12> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector12_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<13> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector13_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<14> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector14_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<15> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector15_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<16> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector16_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<17> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector17_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<18> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector18_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<19> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector19_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template<> | |
struct vector_c_chooser<20> | |
{ | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct result_ | |
{ | |
typedef typename vector20_c< | |
T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) | |
>::type type; | |
}; | |
}; | |
} // namespace aux | |
namespace aux { | |
template< long C > | |
struct is_vector_c_arg | |
{ | |
BOOST_STATIC_CONSTANT(bool, value = true); | |
}; | |
template<> | |
struct is_vector_c_arg<LONG_MAX> | |
{ | |
BOOST_STATIC_CONSTANT(bool, value = false); | |
}; | |
template< | |
long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 | |
, long C9, long C10, long C11, long C12, long C13, long C14, long C15 | |
, long C16, long C17, long C18, long C19, long C20 | |
> | |
struct vector_c_count_args | |
{ | |
BOOST_STATIC_CONSTANT(int, value = | |
is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value | |
+ is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value | |
+ is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value | |
+ is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value | |
+ is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value | |
+ is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value | |
+ is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value | |
+ is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value | |
+ is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value | |
+ is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value | |
); | |
}; | |
template< | |
typename T, long C0, long C1, long C2, long C3, long C4, long C5 | |
, long C6, long C7, long C8, long C9, long C10, long C11, long C12 | |
, long C13, long C14, long C15, long C16, long C17, long C18, long C19 | |
> | |
struct vector_c_impl | |
{ | |
typedef aux::vector_c_count_args< | |
C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 | |
> arg_num_; | |
typedef typename aux::vector_c_chooser< arg_num_::value > | |
::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; | |
}; | |
} // namespace aux | |
template< | |
typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX | |
, long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX | |
, long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX | |
, long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX | |
, long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX | |
, long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX | |
, long C18 = LONG_MAX, long C19 = LONG_MAX | |
> | |
struct vector_c | |
: aux::vector_c_impl< | |
T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 | |
>::type | |
{ | |
typedef typename aux::vector_c_impl< | |
T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 | |
>::type type; | |
}; | |
}} | |