535 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			535 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 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;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}}
							 | 
						||
| 
								 | 
							
								
							 |