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; | ||
|  | }; | ||
|  | 
 | ||
|  | }} | ||
|  | 
 |