diff options
Diffstat (limited to 'contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp')
-rw-r--r-- | contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp | 1068 |
1 files changed, 534 insertions, 534 deletions
diff --git a/contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp index 894023e..c522d08 100644 --- a/contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +++ b/contrib/src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp @@ -1,534 +1,534 @@ -
-// 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;
-};
-
-}}
-
+ +// 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; +}; + +}} + |