528 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			528 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// (C) Copyright Tobias Schwinger
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Use modification and distribution are subject to the boost Software License,
							 | 
						||
| 
								 | 
							
								// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// no include guards, this file is intended for multiple inclusion
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// input:  BOOST_FT_syntax     type macro to use
							 | 
						||
| 
								 | 
							
								// input:  BOOST_FT_cc         empty or cc specifier 
							 | 
						||
| 
								 | 
							
								// input:  BOOST_FT_ell        empty or "..."
							 | 
						||
| 
								 | 
							
								// input:  BOOST_FT_cv         empty or cv qualifiers
							 | 
						||
| 
								 | 
							
								// input:  BOOST_FT_flags      single decimal integer encoding the flags
							 | 
						||
| 
								 | 
							
								// output: BOOST_FT_n          number of component types (arity+1)
							 | 
						||
| 
								 | 
							
								// output: BOOST_FT_arity      current arity
							 | 
						||
| 
								 | 
							
								// output: BOOST_FT_type       macro that expands to the type
							 | 
						||
| 
								 | 
							
								// output: BOOST_FT_tplargs(p) template arguments with given prefix
							 | 
						||
| 
								 | 
							
								// output: BOOST_FT_params(p)  parameters with given prefix
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# include <boost/function_types/detail/synthesize_impl/arity10_1.hpp>
							 | 
						||
| 
								 | 
							
								# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
							 | 
						||
| 
								 | 
							
								# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 12 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 13 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 14 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 15 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 16 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 17 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_15 > ::type iter_16;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_16 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 18 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_15 > ::type iter_16;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_16 > ::type iter_17;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_16 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_17 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 19 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_15 > ::type iter_16;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_16 > ::type iter_17;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_17 > ::type iter_18;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_16 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_17 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_18 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 20 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_15 > ::type iter_16;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_16 > ::type iter_17;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_17 > ::type iter_18;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_18 > ::type iter_19;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_16 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_17 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_18 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_19 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
							 | 
						||
| 
								 | 
							
								struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								template< > 
							 | 
						||
| 
								 | 
							
								struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 21 > 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								template<typename S> struct synthesize_impl_i
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								typedef typename mpl::begin<S> ::type iter_0;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_0 > ::type iter_1;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_1 > ::type iter_2;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_2 > ::type iter_3;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_3 > ::type iter_4;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_4 > ::type iter_5;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_5 > ::type iter_6;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_6 > ::type iter_7;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_7 > ::type iter_8;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_8 > ::type iter_9;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_9 > ::type iter_10;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_10 > ::type iter_11;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_11 > ::type iter_12;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_12 > ::type iter_13;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_13 > ::type iter_14;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_14 > ::type iter_15;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_15 > ::type iter_16;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_16 > ::type iter_17;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_17 > ::type iter_18;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_18 > ::type iter_19;
							 | 
						||
| 
								 | 
							
								typedef typename mpl::next< iter_19 > ::type iter_20;
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20) 
							 | 
						||
| 
								 | 
							
								< typename mpl::deref< iter_0 > ::type 
							 | 
						||
| 
								 | 
							
								, typename detail::cv_traits< 
							 | 
						||
| 
								 | 
							
								typename mpl::deref< iter_1 > ::type > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_2 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_3 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_4 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_5 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_6 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_7 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_8 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_9 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_10 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_11 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_12 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_13 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_14 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_15 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_16 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_17 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_18 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_19 > ::type
							 | 
						||
| 
								 | 
							
								, typename mpl::deref< iter_20 > ::type
							 | 
						||
| 
								 | 
							
								> ::type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								# undef BOOST_FT_make_type
							 | 
						||
| 
								 | 
							
								# undef BOOST_FT_make_type_impl
							 | 
						||
| 
								 | 
							
								
							 |