This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] tuple fixes


Fix PR 18159 (header was using _T as a template parameter) and also perform a number of formatting changes.

While this is a big diff, it doesn't actually change any code except the names of various parameters.

Chris
2004-10-28  Chris Jefferson  <chris@bubblescope.net>

	* include/tr1/tuple: Fix PR 18159 and change formatting
39,43c39,43
<   template<typename _T0 = _NullClass, typename _T1 = _NullClass, 
< 	   typename _T2 = _NullClass, typename _T3 = _NullClass, 
< 	   typename _T4 = _NullClass, typename _T5 = _NullClass, 
< 	   typename _T6 = _NullClass, typename _T7 = _NullClass, 
< 	   typename _T8 = _NullClass, typename _T9 = _NullClass>
---
>   template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
> 	   typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
> 	   typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
> 	   typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
> 	   typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
47c47
<   template<int __i, typename _T>
---
>   template<int __i, typename _Tp>
50,119c50,119
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<0, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T0 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<1, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T1 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<2, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T2 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<3, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T3 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<4, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> > 
<     { typedef _T4 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<5, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T5 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<6, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T6 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<7, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T7 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<8, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<     { typedef _T8 type; };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_element<9, tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
< 				  _T7, _T8, _T9> >
<    { typedef _T9 type; };
<   
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<0, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp0 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<1, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp1 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<2, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp2 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<3, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp3 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<4, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp4 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<5, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp5 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<6, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp6 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<7, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp7 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<8, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp8 type; };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_element<9, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				  _Tp7, _Tp8, _Tp9> >
>     { typedef _Tp9 type; };
> 
121,123c121
<   // NB: Can't this be done via value->type conversions in the generic
<   // tuple class, say with an enum?
<   template<typename _T>
---
>   template<typename _Tp>
127,128c125,126
<     struct tuple_size<tuple<_NullClass, _NullClass, _NullClass, _NullClass, 
< 			    _NullClass, _NullClass, _NullClass, _NullClass, 
---
>     struct tuple_size<tuple<_NullClass, _NullClass, _NullClass, _NullClass,
> 			    _NullClass, _NullClass, _NullClass, _NullClass,
131,134c129,132
<   
<   template<typename _T0>
<     struct tuple_size<tuple<_T0, _NullClass, _NullClass, _NullClass, 
< 			    _NullClass, _NullClass, _NullClass, _NullClass, 
---
> 
>   template< typename _Tp0>
>     struct tuple_size<tuple< _Tp0, _NullClass, _NullClass, _NullClass,
> 			    _NullClass, _NullClass, _NullClass, _NullClass,
137,140c135,138
<   
<   template<typename _T0, typename _T1>
<     struct tuple_size<tuple<_T0, _T1, _NullClass, _NullClass, _NullClass, 
< 			    _NullClass, _NullClass, _NullClass, _NullClass, 
---
> 
>   template<typename _Tp0, typename _Tp1>
>     struct tuple_size<tuple<_Tp0, _Tp1, _NullClass, _NullClass, _NullClass,
> 			    _NullClass, _NullClass, _NullClass, _NullClass,
143,146c141,144
<   
<   template<typename _T0, typename _T1, typename _T2>
<     struct tuple_size<tuple<_T0, _T1, _T2, _NullClass, _NullClass, 
< 			    _NullClass, _NullClass, _NullClass, _NullClass, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _NullClass, _NullClass,
> 			    _NullClass, _NullClass, _NullClass, _NullClass,
149,151c147,149
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _NullClass, _NullClass, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _NullClass, _NullClass,
154,157c152,155
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _NullClass, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _NullClass,
160,163c158,161
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _T5, _NullClass, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _NullClass,
166,169c164,167
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, 
172,175c170,173
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, 
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, 
178,183c176,181
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, 
< 			    _T8, _NullClass> >
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
> 			    _Tp8,  _NullClass> >
185,190c183,188
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     struct tuple_size<tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, 
< 			    _T8, _T9> >
---
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
> 			    _Tp8, _Tp9> >
192c190
<   
---
> 
194,201c192,199
<   template<typename _T>
<     struct __add_const_ref
<     { typedef const _T& type; };
<   
<   template<typename _T>
<     struct __add_const_ref<_T&>
<     { typedef _T& type; };
<   
---
>   template<typename _Tp>
>     struct __add_c_ref
>     { typedef const _Tp& type; };
> 
>   template<typename _Tp>
>     struct __add_c_ref<_Tp&>
>     { typedef _Tp& type; };
> 
203c201
<   template<typename _T>
---
>   template<typename _Tp>
205,210c203,208
<     { typedef _T& type; };
<   
<   template<typename _T>
<     struct __add_ref<_T&>
<     { typedef _T& type; };
<   
---
>     { typedef _Tp& type; };
> 
>   template<typename _Tp>
>     struct __add_ref<_Tp&>
>     { typedef _Tp& type; };
> 
213,214c211,212
<     class tuple<_NullClass, _NullClass, _NullClass, _NullClass, _NullClass, 
< 		_NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
---
>     class tuple<_NullClass, _NullClass, _NullClass, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
219c217
<       
---
> 
222c220
<       
---
> 
226,229c224,227
<   
<   template<typename _T0>
<     class tuple<_T0, _NullClass, _NullClass, _NullClass, _NullClass, 
< 		_NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
---
> 
>   template< typename _Tp0>
>     class tuple< _Tp0, _NullClass, _NullClass, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
231c229
<       _T0 __t0;
---
>       _Tp0 _M_t0;
236,257c234,272
<       
<       explicit tuple(typename __add_const_ref<_T0>::type __in0):
<       __t0(__in0)
<       { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0)
<     { }
<     template <typename _U0>
<     tuple(const tuple<_U0>& __in):
<       __t0(__in.__t0)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       return *this;
<     }
<       
<     template <typename _U0>
<     tuple&
<     operator=(const tuple<_U0>& __in)
---
> 
>       explicit tuple( typename __add_c_ref<_Tp0>::type __in0):
>          _M_t0(__in0)
>       { }
> 
>       tuple(const tuple& __in):
>          _M_t0(__in._M_t0)
>       { }
> 
>       template< typename _Up0>
>         tuple(const tuple< _Up0>& __in):
> 	   _M_t0(__in._M_t0)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         return *this;
>       }
> 
>       template< typename _Up0>
>         tuple&
>         operator=(const tuple< _Up0>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1>
>     class tuple<_Tp0, _Tp1, _NullClass, _NullClass, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass, _NullClass>
259,880c274,916
<       __t0=__in.__t0;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1>
<   class tuple<_T0, _T1, _NullClass, _NullClass, _NullClass, _NullClass, 
< 	      _NullClass, _NullClass, _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1):
<       __t0(__in0), __t1(__in1)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1)
<     { }
<     template <typename _U0, typename _U1>
<     tuple(const tuple<_U0, _U1>& __in):
<       __t0(__in.__t0), __t1(__in.__t1)
<     { }
<       
<     template<class _U1, class _U2>
<     tuple(const std::pair<_U1, _U2>& __u): __t0(__u.first), __t1(__u.second)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1>
<     tuple&
<     operator=(const tuple<_U0, _U1>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2>
<   class tuple<_T0, _T1, _T2, _NullClass, _NullClass, _NullClass, 
< 	      _NullClass, _NullClass, _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2):
<       __t0(__in0), __t1(__in1), __t2(__in2)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2)
<     { }
<     template <typename _U0, typename _U1, typename _U2>
<     tuple(const tuple<_U0, _U1, _U2>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3>
<   class tuple<_T0, _T1, _T2, _T3, _NullClass, _NullClass, _NullClass, 
< 	      _NullClass, _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3>
<     tuple(const tuple<_U0, _U1, _U2, _U3>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4>
<   class tuple<_T0, _T1, _T2, _T3, _T4, _NullClass, _NullClass, 
< 	      _NullClass, _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5>
<   class tuple<_T0, _T1, _T2, _T3, _T4, _T5, _NullClass, _NullClass, 
< 	      _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<     _T5 __t5;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4, 
< 		   typename __add_const_ref<_T5>::type __in5):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4), __t5(__in5)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4, _U5>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4, _U5>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6>
<   class tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _NullClass, 
< 	      _NullClass, _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<     _T5 __t5;
<     _T6 __t6;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4, 
< 		   typename __add_const_ref<_T5>::type __in5, 
< 		   typename __add_const_ref<_T6>::type __in6):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4), __t5(__in5), __t6(__in6)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7>
<   class tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _NullClass, 
< 	      _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<     _T5 __t5;
<     _T6 __t6;
<     _T7 __t7;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4, 
< 		   typename __add_const_ref<_T5>::type __in5, 
< 		   typename __add_const_ref<_T6>::type __in6, 
< 		   typename __add_const_ref<_T7>::type __in7):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4), __t5(__in5), __t6(__in6), __t7(__in7)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7
< 	  >& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7
< 	      >& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8>
<   class tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	      _NullClass>
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<     _T5 __t5;
<     _T6 __t6;
<     _T7 __t7;
<     _T8 __t8;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4, 
< 		   typename __add_const_ref<_T5>::type __in5, 
< 		   typename __add_const_ref<_T6>::type __in6, 
< 		   typename __add_const_ref<_T7>::type __in7, 
< 		   typename __add_const_ref<_T8>::type __in8):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4), __t5(__in5), __t6(__in6), __t7(__in7), 
<       __t8(__in8)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7), __t8(__in.__t8)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7, 
< 	      typename _U8>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
< 	  >& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7), __t8(__in.__t8)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       __t8=__in.__t8;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7, 
< 	      typename _U8>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, 
< 	      _U8>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       __t8=__in.__t8;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
<   };
<   
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<   class tuple
<   {
<     _T0 __t0;
<     _T1 __t1;
<     _T2 __t2;
<     _T3 __t3;
<     _T4 __t4;
<     _T5 __t5;
<     _T6 __t6;
<     _T7 __t7;
<     _T8 __t8;
<     _T9 __t9;
<   public:
<     tuple()
<     { }
<       
<     explicit tuple(typename __add_const_ref<_T0>::type __in0, 
< 		   typename __add_const_ref<_T1>::type __in1, 
< 		   typename __add_const_ref<_T2>::type __in2, 
< 		   typename __add_const_ref<_T3>::type __in3, 
< 		   typename __add_const_ref<_T4>::type __in4, 
< 		   typename __add_const_ref<_T5>::type __in5, 
< 		   typename __add_const_ref<_T6>::type __in6, 
< 		   typename __add_const_ref<_T7>::type __in7, 
< 		   typename __add_const_ref<_T8>::type __in8, 
< 		   typename __add_const_ref<_T9>::type __in9):
<       __t0(__in0), __t1(__in1), __t2(__in2), __t3(__in3), 
<       __t4(__in4), __t5(__in5), __t6(__in6), __t7(__in7), 
<       __t8(__in8), __t9(__in9)
<     { }
<       
<     tuple(const tuple& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7), __t8(__in.__t8), 
<       __t9(__in.__t9)
<     { }
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7, 
< 	      typename _U8, typename _U9>
<     tuple(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, 
< 	  _U9>& __in):
<       __t0(__in.__t0), __t1(__in.__t1), __t2(__in.__t2), 
<       __t3(__in.__t3), __t4(__in.__t4), __t5(__in.__t5), 
<       __t6(__in.__t6), __t7(__in.__t7), __t8(__in.__t8), 
<       __t9(__in.__t9)
<     { }
<       
<     tuple& operator=(const tuple& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       __t8=__in.__t8;
<       __t9=__in.__t9;
<       return *this;
<     }
<       
<     template <typename _U0, typename _U1, typename _U2, typename _U3, 
< 	      typename _U4, typename _U5, typename _U6, typename _U7, 
< 	      typename _U8, typename _U9>
<     tuple&
<     operator=(const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, 
< 	      _U8, _U9>& __in)
<     {
<       __t0=__in.__t0;
<       __t1=__in.__t1;
<       __t2=__in.__t2;
<       __t3=__in.__t3;
<       __t4=__in.__t4;
<       __t5=__in.__t5;
<       __t6=__in.__t6;
<       __t7=__in.__t7;
<       __t8=__in.__t8;
<       __t9=__in.__t9;
<       return *this;
<     }
<     template<int __i, typename _U>
<     friend class __get_helper;
<     template<typename, typename, typename, typename, typename, typename, 
< 	     typename, typename, typename, typename>
<     friend class tuple;
---
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1):
>         _M_t0(__in0), _M_t1(__in1)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1)
>       { }
> 
>       template<typename _Up0, typename _Up1>
>         tuple(const tuple<_Up0, _Up1>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1)
>         { }
> 
>       template<class _Up1, class _Up2>
>         tuple(const std::pair<_Up1, _Up2>& __u):
>            _M_t0(__u.first), _M_t1(__u.second)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1>
>         tuple&
>         operator=(const tuple<_Up0, _Up1>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2>
>     class tuple<_Tp0, _Tp1, _Tp2, _NullClass, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass, _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2>
>         tuple(const tuple<_Up0, _Up1, _Up2>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _NullClass, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _NullClass, _NullClass,
> 	        _NullClass, _NullClass, _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _NullClass, _NullClass,
> 	        _NullClass, _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
>       _Tp5 _M_t5;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4,
> 		     typename __add_c_ref<_Tp5>::type __in5):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
>         _M_t5(__in5)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         _M_t5=__in._M_t5;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  _M_t5=__in._M_t5;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _NullClass,
> 	        _NullClass, _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
>       _Tp5 _M_t5;
>       _Tp6 _M_t6;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4,
> 		     typename __add_c_ref<_Tp5>::type __in5,
> 		     typename __add_c_ref<_Tp6>::type __in6):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
>         _M_t5(__in5), _M_t6(__in6)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
>         _M_t6(__in._M_t6)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
> 	  _M_t6(__in._M_t6)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         _M_t5=__in._M_t5;
>         _M_t6=__in._M_t6;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5,
> 			      _Up6>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  _M_t5=__in._M_t5;
> 	  _M_t6=__in._M_t6;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _NullClass,
> 	        _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
>       _Tp5 _M_t5;
>       _Tp6 _M_t6;
>       _Tp7 _M_t7;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4,
> 		     typename __add_c_ref<_Tp5>::type __in5,
> 		     typename __add_c_ref<_Tp6>::type __in6,
> 		     typename __add_c_ref<_Tp7>::type __in7):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
>         _M_t5(__in5), _M_t6(__in6), _M_t7(__in7)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
>         _M_t6(__in._M_t6), _M_t7(__in._M_t7)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6,
> 			  _Up7>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
> 	  _M_t6(__in._M_t6), _M_t7(__in._M_t7)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         _M_t5=__in._M_t5;
>         _M_t6=__in._M_t6;
>         _M_t7=__in._M_t7;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6,
> 			      _Up7>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  _M_t5=__in._M_t5;
> 	  _M_t6=__in._M_t6;
> 	  _M_t7=__in._M_t7;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8>
>     class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, 
> 	        _NullClass>
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
>       _Tp5 _M_t5;
>       _Tp6 _M_t6;
>       _Tp7 _M_t7;
>       _Tp8 _M_t8;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4,
> 		     typename __add_c_ref<_Tp5>::type __in5,
> 		     typename __add_c_ref<_Tp6>::type __in6,
> 		     typename __add_c_ref<_Tp7>::type __in7,
> 		     typename __add_c_ref<_Tp8>::type __in8):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
>         _M_t5(__in5), _M_t6(__in6), _M_t7(__in7), _M_t8(__in8)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
>         _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7,
> 	       typename _Up8>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
> 			  _Up8>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
> 	  _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         _M_t5=__in._M_t5;
>         _M_t6=__in._M_t6;
>         _M_t7=__in._M_t7;
>         _M_t8=__in._M_t8;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7,
> 	       typename _Up8>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
> 			      _Up8>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  _M_t5=__in._M_t5;
> 	  _M_t6=__in._M_t6;
> 	  _M_t7=__in._M_t7;
> 	  _M_t8=__in._M_t8;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
>   };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     class tuple
>     {
>       _Tp0 _M_t0;
>       _Tp1 _M_t1;
>       _Tp2 _M_t2;
>       _Tp3 _M_t3;
>       _Tp4 _M_t4;
>       _Tp5 _M_t5;
>       _Tp6 _M_t6;
>       _Tp7 _M_t7;
>       _Tp8 _M_t8;
>       _Tp9 _M_t9;
> 
>     public:
>       tuple()
>       { }
> 
>       explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
> 		     typename __add_c_ref<_Tp1>::type __in1,
> 		     typename __add_c_ref<_Tp2>::type __in2,
> 		     typename __add_c_ref<_Tp3>::type __in3,
> 		     typename __add_c_ref<_Tp4>::type __in4,
> 		     typename __add_c_ref<_Tp5>::type __in5,
> 		     typename __add_c_ref<_Tp6>::type __in6,
> 		     typename __add_c_ref<_Tp7>::type __in7,
> 		     typename __add_c_ref<_Tp8>::type __in8,
> 		     typename __add_c_ref<_Tp9>::type __in9):
>         _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
>         _M_t5(__in5), _M_t6(__in6), _M_t7(__in7), _M_t8(__in8), _M_t9(__in9)
>       { }
> 
>       tuple(const tuple& __in):
>         _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
>         _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
>         _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8),
>         _M_t9(__in._M_t9)
>       { }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7,
> 	       typename _Up8, typename _Up9>
>         tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 			  _Up9>& __in):
> 	  _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
> 	  _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
> 	  _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8),
> 	  _M_t9(__in._M_t9)
>         { }
> 
>       tuple&
>       operator=(const tuple& __in)
>       {
>         _M_t0=__in._M_t0;
>         _M_t1=__in._M_t1;
>         _M_t2=__in._M_t2;
>         _M_t3=__in._M_t3;
>         _M_t4=__in._M_t4;
>         _M_t5=__in._M_t5;
>         _M_t6=__in._M_t6;
>         _M_t7=__in._M_t7;
>         _M_t8=__in._M_t8;
>         _M_t9=__in._M_t9;
>         return *this;
>       }
> 
>       template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
> 	       typename _Up4, typename _Up5, typename _Up6, typename _Up7,
> 	       typename _Up8, typename _Up9>
>         tuple&
>         operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
> 			      _Up8, _Up9>& __in)
>         {
> 	  _M_t0=__in._M_t0;
> 	  _M_t1=__in._M_t1;
> 	  _M_t2=__in._M_t2;
> 	  _M_t3=__in._M_t3;
> 	  _M_t4=__in._M_t4;
> 	  _M_t5=__in._M_t5;
> 	  _M_t6=__in._M_t6;
> 	  _M_t7=__in._M_t7;
> 	  _M_t8=__in._M_t8;
> 	  _M_t9=__in._M_t9;
> 	  return *this;
>         }
> 
>       template<int __i, typename _Up>
>         friend class __get_helper;
>       template<typename, typename, typename, typename, typename, typename,
> 	       typename, typename, typename, typename>
>         friend class tuple;
882c918
<   
---
> 
884c920
<   template<int __i, typename _T>
---
>   template<int __i, typename _Tp>
887,963c923,924
<   template<typename _T>
<     struct __get_helper<0, _T>
<     {
<       static typename __add_ref<typename tuple_element<0, _T>::type>::type
<       get_value(_T& __in) 
<       { return __in.__t0; }
< 
<       static typename __add_const_ref<typename tuple_element<0, _T>::type>::type
<       get_value(const _T& __in)
<       { return __in.__t0; }
<     };
<   
<   template<typename _T>
<   struct __get_helper<1, _T>
<   {
<     static typename __add_ref<typename tuple_element<1, _T>::type>::type
<     get_value(_T& __in)
<     {
<       return __in.__t1;
<     }
<     static typename __add_const_ref<typename tuple_element<1, _T>::type>::type
<     get_value(const _T& __in)
<     {
<       return __in.__t1;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<2, _T>
<   {
<     static typename __add_ref<typename tuple_element<2, _T>::type>::type
<     get_value(_T& __in)
<     {
<       return __in.__t2;
<     }
<     static typename __add_const_ref<typename tuple_element<2, _T>::type>::type
<     get_value(const _T& __in)
<     {
<       return __in.__t2;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<3, _T>
<   {
<     static typename __add_ref<typename tuple_element<3, _T>::type>::type
<     get_value(_T& __in)
<     {
<       return __in.__t3;
<     }
<     static typename __add_const_ref<typename tuple_element<3, _T>::type>::type
<     get_value(const _T& __in)
<     {
<       return __in.__t3;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<4, _T>
<   {
<     static typename __add_ref<typename tuple_element<4, _T>::type>::type
<     get_value(_T& __in)
<     {
<       return __in.__t4;
<     }
<     static typename __add_const_ref<typename tuple_element<4, _T>::type>::type
<     get_value(const _T& __in)
<     {
<       return __in.__t4;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<5, _T>
<   {
<     static typename __add_ref<typename tuple_element<5, _T>::type>::type
<     get_value(_T& __in)
---
>   template<typename _Tp>
>     struct __get_helper<0, _Tp>
965,968c926,936
<       return __in.__t5;
<     }
<     static typename __add_const_ref<typename tuple_element<5, _T>::type>::type
<     get_value(const _T& __in)
---
>       static typename __add_ref<typename tuple_element<0, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t0; }
> 
>       static typename __add_c_ref<typename tuple_element<0, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t0; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<1, _Tp>
970,978c938,948
<       return __in.__t5;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<6, _T>
<   {
<     static typename __add_ref<typename tuple_element<6, _T>::type>::type
<     get_value(_T& __in)
---
>       static typename __add_ref<typename tuple_element<1, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t1; }
> 
>       static typename __add_c_ref<typename tuple_element<1, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t1; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<2, _Tp>
980,983c950,960
<       return __in.__t6;
<     }
<     static typename __add_const_ref<typename tuple_element<6, _T>::type>::type
<     get_value(const _T& __in)
---
>       static typename __add_ref<typename tuple_element<2, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t2; }
> 
>       static typename __add_c_ref<typename tuple_element<2, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t2; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<3, _Tp>
985,993c962,972
<       return __in.__t6;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<7, _T>
<   {
<     static typename __add_ref<typename tuple_element<7, _T>::type>::type
<     get_value(_T& __in)
---
>       static typename __add_ref<typename tuple_element<3, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t3; }
> 
>       static typename __add_c_ref<typename tuple_element<3, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t3; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<4, _Tp>
995,998c974,984
<       return __in.__t7;
<     }
<     static typename __add_const_ref<typename tuple_element<7, _T>::type>::type
<     get_value(const _T& __in)
---
>       static typename __add_ref<typename tuple_element<4, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t4; }
> 
>       static typename __add_c_ref<typename tuple_element<4, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t4; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<5, _Tp>
1000,1008c986,996
<       return __in.__t7;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<8, _T>
<   {
<     static typename __add_ref<typename tuple_element<8, _T>::type>::type
<     get_value(_T& __in)
---
>       static typename __add_ref<typename tuple_element<5, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t5; }
> 
>       static typename __add_c_ref<typename tuple_element<5, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t5; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<6, _Tp>
1010,1013c998,1008
<       return __in.__t8;
<     }
<     static typename __add_const_ref<typename tuple_element<8, _T>::type>::type
<     get_value(const _T& __in)
---
>       static typename __add_ref<typename tuple_element<6, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t6; }
> 
>       static typename __add_c_ref<typename tuple_element<6, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t6; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<7, _Tp>
1015,1023c1010,1020
<       return __in.__t8;
<     }
<   };
<   
<   template<typename _T>
<   struct __get_helper<9, _T>
<   {
<     static typename __add_ref<typename tuple_element<9, _T>::type>::type
<     get_value(_T& __in)
---
>       static typename __add_ref<typename tuple_element<7, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t7; }
> 
>       static typename __add_c_ref<typename tuple_element<7, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t7; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<8, _Tp>
1025,1028c1022,1032
<       return __in.__t9;
<     }
<     static typename __add_const_ref<typename tuple_element<9, _T>::type>::type
<     get_value(const _T& __in)
---
>       static typename __add_ref<typename tuple_element<8, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t8; }
> 
>       static typename __add_c_ref<typename tuple_element<8, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t8; }
>     };
> 
>   template<typename _Tp>
>     struct __get_helper<9, _Tp>
1030,1033c1034,1042
<       return __in.__t9;
<     }
<   };
<   
---
>       static typename __add_ref<typename tuple_element<9, _Tp>::type>::type
>       get_value(_Tp& __in)
>       { return __in._M_t9; }
> 
>       static typename __add_c_ref<typename tuple_element<9, _Tp>::type>::type
>       get_value(const _Tp& __in)
>       { return __in._M_t9; }
>     };
> 
1037,1046c1046,1058
<   template<int __i, typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<   typename __add_ref<typename tuple_element<__i,tuple<_T0, _T1, _T2, _T3, 
< 						      _T4, _T5, _T6, _T7, _T8, _T9> >::type>::type
<   get(tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9>& __t)
<   {
<     return __get_helper<__i,tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
<       _T7, _T8, _T9> >::get_value(__t);
<   }
---
>   template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 		    typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 		    typename _Tp8, typename _Tp9>
>     typename __add_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
> 							 _Tp3, _Tp4, _Tp5,
> 							 _Tp6, _Tp7, _Tp8,
> 							 _Tp9> >::type>::type
>     get(tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 	      _Tp9>& __t)
>     {
>       return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				     _Tp7, _Tp8, _Tp9> >::get_value(__t);
>     }
1051,1061c1063,1075
<   template<int __i, typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<   typename __add_const_ref<typename tuple_element<__i,tuple<_T0, _T1, _T2, 
< 							    _T3, _T4, _T5, _T6, _T7, _T8, _T9> >::type>::type
<   get(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       >& __t)
<   {
<     return __get_helper<__i,tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, 
<       _T7, _T8, _T9> >::get_value(__t);
<   }
---
>   template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 		    typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 		    typename _Tp8, typename _Tp9>
>     typename __add_c_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
> 							   _Tp3, _Tp4, _Tp5,
> 							   _Tp6, _Tp7, _Tp8,
> 							   _Tp9> >::type>::type
>     get(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		    _Tp9>& __t)
>     {
>       return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				     _Tp7, _Tp8, _Tp9> >::get_value(__t);
>     }
1064,1065c1078,1079
<   template<int __check_equal_size, int __i, int __j, typename _T, typename _U>
<   struct __tuple_compare;
---
>   template<int __check_equal_size, int __i, int __j, typename _Tp, typename _Up>
>     struct __tuple_compare;
1067,1085c1081,1082
<   template<int __i, int __j, typename _T, typename _U>
<   struct __tuple_compare<0, __i, __j, _T, _U>
<   {
<     static bool __eq(const _T& __t, const _U& __u)
<     {
<       return get<__i>(__t) == get<__i>(__u) &&
< 	__tuple_compare<0, __i+1, __j, _T, _U>::__eq(__t, __u) ;
<     }
<     static bool __neq(const _T& __t, const _U& __u)
<     {
<       return get<__i>(__t) != get<__i>(__u) ||
< 	__tuple_compare<0, __i+1, __j, _T, _U>::__neq(__t, __u) ;
<     }
<     static bool __less(const _T& __t, const _U& __u)
<     {
<       return (get<__i>(__t) < get<__i>(__u)) || !(get<__i>(__u) < get<__i>(__t)) &&
< 	__tuple_compare<0, __i+1, __j, _T, _U>::__less(__t, __u) ;
<     }
<     static bool __greater(const _T& __t, const _U& __u)
---
>   template<int __i, int __j, typename _Tp, typename _Up>
>     struct __tuple_compare<0, __i, __j, _Tp, _Up>
1087,1125c1084,1117
<       return (get<__i>(__t) > get<__i>(__u)) || !(get<__i>(__u) > get<__i>(__t)) &&
< 	__tuple_compare<0, __i+1, __j, _T, _U>::__greater(__t, __u) ;
<     }
<     static bool __leq(const _T& __t, const _U& __u)
<     {
<       return (get<__i>(__t) <= get<__i>(__u)) && (!(get<__i>(__u)<=get<__i>(__t)) ||
< 						  __tuple_compare<0, __i+1, __j, _T, _U>::__leq(__t, __u) );
<     }
<     static bool __geq(const _T& __t, const _U& __u)
<     {
<       return (get<__i>(__t) >= get<__i>(__u)) && (!(get<__i>(__u)>=get<__i>(__t)) ||
< 						  __tuple_compare<0, __i+1, __j, _T, _U>::__geq(__t, __u) );
<     }
<   };
<   
<   template<int __i, typename _T, typename _U>
<   struct __tuple_compare<0, __i, __i, _T, _U>
<   {
<     static bool __eq(const _T&, const _U&)
<     {
<       return true;
<     }
<     static bool __neq(const _T&, const _U&)
<     {
<       return false;
<     }
<     static bool __leq(const _T&, const _U&)
<     {
<       return true;
<     }
<     static bool __geq(const _T&, const _U&)
<     {
<       return true;
<     }
<     static bool __less(const _T&, const _U&)
<     {
<       return false;
<     }
<     static bool __greater(const _T&, const _U&)
---
>       static bool __eq(const _Tp& __t, const _Up& __u)
>       {
>         return get<__i>(__t) == get<__i>(__u) &&
>            __tuple_compare<0, __i+1, __j, _Tp, _Up>::__eq(__t, __u);
>       }
>       static bool __neq(const _Tp& __t, const _Up& __u)
>       {
>         return get<__i>(__t) != get<__i>(__u) ||
>            __tuple_compare<0, __i+1, __j, _Tp, _Up>::__neq(__t, __u);
>       }
>       static bool __less(const _Tp& __t, const _Up& __u)
>       {
>         return (get<__i>(__t) < get<__i>(__u)) || !(get<__i>(__u) < get<__i>(__t)) &&
>            __tuple_compare<0, __i+1, __j, _Tp, _Up>::__less(__t, __u);
>       }
>       static bool __greater(const _Tp& __t, const _Up& __u)
>       {
>         return (get<__i>(__t) > get<__i>(__u)) || !(get<__i>(__u) > get<__i>(__t)) &&
>            __tuple_compare<0, __i+1, __j, _Tp, _Up>::__greater(__t, __u);
>       }
>       static bool __leq(const _Tp& __t, const _Up& __u)
>       {
>         return (get<__i>(__t) <= get<__i>(__u)) && (!(get<__i>(__u)<=get<__i>(__t)) ||
>         					   __tuple_compare<0, __i+1, __j, _Tp, _Up>::__leq(__t, __u));
>       }
>       static bool __geq(const _Tp& __t, const _Up& __u)
>       {
>         return (get<__i>(__t) >= get<__i>(__u)) && (!(get<__i>(__u)>=get<__i>(__t)) ||
>         					   __tuple_compare<0, __i+1, __j, _Tp, _Up>::__geq(__t, __u));
>       }
>     };
> 
>   template<int __i, typename _Tp, typename _Up>
>     struct __tuple_compare<0, __i, __i, _Tp, _Up>
1127,1129c1119,1131
<       return false;
<     }
<   };
---
>       static bool __eq(const _Tp&, const _Up&)
>       { return true; }
>       static bool __neq(const _Tp&, const _Up&)
>       { return false; }
>       static bool __leq(const _Tp&, const _Up&)
>       { return true; }
>       static bool __geq(const _Tp&, const _Up&)
>       { return true; }
>       static bool __less(const _Tp&, const _Up&)
>       { return false; }
>       static bool __greater(const _Tp&, const _Up&)
>       { return false; }
>     };
1131,1135c1133,1137
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1137,1139c1139,1140
<   operator==(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	     _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	     _U7, _U8, _U9>& __u)
---
>   operator==(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	     const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1141,1147c1142,1148
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__eq(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__eq(__t, __u);
1150,1154c1151,1155
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1156,1158c1157,1158
<   operator!=(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	     _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	     _U7, _U8, _U9>& __u)
---
>   operator!=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	     const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1160,1166c1160,1166
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__neq(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__neq(__t, __u);
1169,1173c1169,1173
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1175,1177c1175,1176
<   operator<(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	    _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	    _U7, _U8, _U9>& __u)
---
>   operator<(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	    const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1179,1185c1178,1184
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__less(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__less(__t, __u);
1188,1192c1187,1191
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1194,1196c1193,1194
<   operator>(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	    _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	    _U7, _U8, _U9>& __u)
---
>   operator>(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	    const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1198,1204c1196,1202
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__greater(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__greater(__t, __u);
1207,1211c1205,1209
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1213,1215c1211,1212
<   operator<=(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	     _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	     _U7, _U8, _U9>& __u)
---
>   operator<=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	     const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1217,1223c1214,1220
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__leq(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__leq(__t, __u);
1226,1230c1223,1227
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9, typename _U0, typename _U1, 
< 	   typename _U2, typename _U3, typename _U4, typename _U5, 
< 	   typename _U6, typename _U7, typename _U8, typename _U9>
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
> 	   typename _Up2, typename _Up3, typename _Up4, typename _Up5,
> 	   typename _Up6, typename _Up7, typename _Up8, typename _Up9>
1232,1234c1229,1230
<   operator>=(const tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, 
< 	     _T9>& __t, const tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, 
< 	     _U7, _U8, _U9>& __u)
---
>   operator>=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
> 	     const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
1236,1242c1232,1238
<     typedef tuple<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
<       > __T_tuple;
<     typedef tuple<_U0, _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
<       > __U_tuple;
<     return __tuple_compare<tuple_size<__T_tuple>::value -
<       tuple_size<__U_tuple>::value, 0,
<       tuple_size<__T_tuple>::value, __T_tuple, __U_tuple>::__geq(__t, __u);
---
>     typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
> 		  _Tp9> __t_tuple;
>     typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
> 		  _Up9> __u_tuple;
>     return __tuple_compare<tuple_size<__t_tuple>::value -
>      tuple_size<__u_tuple>::value, 0,
>       tuple_size<__t_tuple>::value, __t_tuple, __u_tuple>::__geq(__t, __u);
1247,1264c1243,1262
<   template<typename _T>
<   class reference_wrapper
<   {
<     _T& __data;
< 
<   public:
<     typedef _T type;
< 
<     explicit reference_wrapper(_T& __indata): __data(__indata)
<     { }
<     
<     operator _T&() const
<     { return this->get(); }
<     
<     _T&
<     get() const
<     { return __data; }
<   };
---
>   template<typename _Tp>
>     class reference_wrapper
>     {
>       _Tp& _M_data;
>       public:
>         typedef _Tp type;
>         explicit reference_wrapper(_Tp& __indata): _M_data(__indata)
>         { }
> 
>         operator _Tp& () const
>         {
> 	  return this->get();
>         }
> 
>         _Tp&
>         get() const
>         {
> 	  return _M_data;
>         }
>     };
1267,1270c1265,1270
<   template<typename _T>
<     reference_wrapper<_T>
<     ref(_T& __t)
<     { return reference_wrapper<_T>(__t); }
---
>   template<typename _Tp>
>     reference_wrapper<_Tp>
>     ref(_Tp& __t)
>     {
>       return reference_wrapper<_Tp>(__t);
>     }
1273,1276c1273,1278
<   template<typename _T>
<     reference_wrapper<_T const>
<     cref(const _T& __t)
<     { return reference_wrapper<_T const>(__t); }
---
>   template<typename _Tp>
>     reference_wrapper<_Tp const>
>     cref(const _Tp& __t)
>     {
>       return reference_wrapper<_Tp const>(__t);
>     }
1279c1281
<   template<typename _T>
---
>   template<typename _Tp>
1281c1283,1285
<     { typedef _T __type; };
---
>     {
>         typedef _Tp __type;
>     };
1283,1295c1287,1303
<   template<typename _T>
<     struct __strip_reference_wrapper<reference_wrapper<_T> >
<     { typedef _T& __type; };
< 
<   template<typename _T>
<     struct __strip_reference_wrapper<const reference_wrapper<_T> >
<     { typedef _T& __type; };
< 
<   template<typename _T0 = _NullClass, typename _T1 = _NullClass, 
< 	   typename _T2 = _NullClass, typename _T3 = _NullClass, 
< 	   typename _T4 = _NullClass, typename _T5 = _NullClass, 
< 	   typename _T6 = _NullClass, typename _T7 = _NullClass, 
< 	   typename _T8 = _NullClass, typename _T9 = _NullClass>
---
>   template<typename _Tp>
>     struct __strip_reference_wrapper<reference_wrapper<_Tp> >
>     {
>       typedef _Tp& __type;
>     };
> 
>   template<typename _Tp>
>     struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
>     {
>         typedef _Tp& __type;
>     };
> 
>   template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
> 	   typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
> 	   typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
> 	   typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
> 	   typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
1298,1307c1306,1315
<       typedef tuple<typename __strip_reference_wrapper<_T0>::__type, 
< 		    typename __strip_reference_wrapper<_T1>::__type, 
< 		    typename __strip_reference_wrapper<_T2>::__type, 
< 		    typename __strip_reference_wrapper<_T3>::__type, 
< 		    typename __strip_reference_wrapper<_T4>::__type, 
< 		    typename __strip_reference_wrapper<_T5>::__type, 
< 		    typename __strip_reference_wrapper<_T6>::__type, 
< 		    typename __strip_reference_wrapper<_T7>::__type, 
< 		    typename __strip_reference_wrapper<_T8>::__type, 
< 		    typename __strip_reference_wrapper<_T9>::__type>  __type;
---
>       typedef tuple<typename __strip_reference_wrapper<_Tp0>::__type,
> 		    typename __strip_reference_wrapper<_Tp1>::__type,
> 		    typename __strip_reference_wrapper<_Tp2>::__type,
> 		    typename __strip_reference_wrapper<_Tp3>::__type,
> 		    typename __strip_reference_wrapper<_Tp4>::__type,
> 		    typename __strip_reference_wrapper<_Tp5>::__type,
> 		    typename __strip_reference_wrapper<_Tp6>::__type,
> 		    typename __strip_reference_wrapper<_Tp7>::__type,
> 		    typename __strip_reference_wrapper<_Tp8>::__type,
> 		    typename __strip_reference_wrapper<_Tp9>::__type>      __type;
1312,1314c1320
<   {
<     return tuple<>();
<   };
---
>   { return tuple<>(); }
1316,1320c1322,1328
<   template<typename _T0>
<   typename __stripped_tuple_type<_T0>::__type
<   make_tuple(_T0 __t0)
<   {
<     return typename  __stripped_tuple_type<_T0>::__type(__t0);};
---
>   template< typename _Tp0>
>     typename __stripped_tuple_type< _Tp0>::__type
>     make_tuple( _Tp0 __t0)
>     {
>       return typename  __stripped_tuple_type< _Tp0>::
>         __type( __t0);
>     }
1322,1326c1330,1336
<   template<typename _T0, typename _T1>
<   typename __stripped_tuple_type<_T0, _T1>::__type
<   make_tuple(_T0 __t0, _T1 __t1)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1>::__type(__t0, __t1);};
---
>   template<typename _Tp0, typename _Tp1>
>     typename __stripped_tuple_type<_Tp0, _Tp1>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1>::
>         __type(__t0, __t1);
>     }
1328,1332c1338,1344
<   template<typename _T0, typename _T1, typename _T2>
<   typename __stripped_tuple_type<_T0, _T1, _T2>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2)
<   {
<     return typename __stripped_tuple_type<_T0, _T1, _T2>::__type(__t0, __t1, __t2);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2>::
>         __type(__t0, __t1, __t2);
>     }
1334,1338c1346,1352
<   template<typename _T0, typename _T1, typename _T2, typename _T3>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3>::__type(__t0, __t1, __t2, __t3);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3>::
>         __type(__t0, __t1, __t2, __t3);
>     }
1340,1345c1354,1361
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4>::__type(__t0, __t1, __t2, __t3, __t4);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4>::
>         __type(__t0, __t1, __t2, __t3, __t4);
>     }
1347,1354c1363,1373
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4, 
< 	     _T5 __t5)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5
<       >::__type(__t0, __t1, __t2, __t3, __t4, __t5);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 				   _Tp5>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
> 	       _Tp5 __t5)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 					     _Tp5>::
>         __type(__t0, __t1, __t2, __t3, __t4, __t5);
>     }
1356,1364c1375,1385
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, _T6
< 				 >::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4, 
< 	     _T5 __t5, _T6 __t6)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, 
<       _T6>::__type(__t0, __t1, __t2, __t3, __t4, __t5, __t6);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5,
> 				   _Tp6>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
> 	       _Tp5 __t5, _Tp6 __t6)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 					     _Tp5, _Tp6>::
>         __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6);
>     }
1366,1374c1387,1397
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7
< 				 >::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4, 
< 	     _T5 __t5, _T6 __t6, _T7 __t7)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, 
<       _T6, _T7>::__type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				   _Tp7>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
> 	       _Tp5 __t5, _Tp6 __t6, _Tp7 __t7)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 					     _Tp5, _Tp6, _Tp7>::
>         __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7);
>     }
1376,1385c1399,1410
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, 
< 				 _T8>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4, 
< 	     _T5 __t5, _T6 __t6, _T7 __t7, _T8 __t8)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, 
<       _T6, _T7, _T8>::__type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8);};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				   _Tp7, _Tp8>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
> 	       _Tp5 __t5, _Tp6 __t6, _Tp7 __t7, _Tp8 __t8)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 					     _Tp5, _Tp6, _Tp7, _Tp8>::
>         __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8);
>     }
1387,1397c1412,1426
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<   typename __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, 
< 				 _T8, _T9>::__type
<   make_tuple(_T0 __t0, _T1 __t1, _T2 __t2, _T3 __t3, _T4 __t4, 
< 	     _T5 __t5, _T6 __t6, _T7 __t7, _T8 __t8, _T9 __t9)
<   {
<     return typename  __stripped_tuple_type<_T0, _T1, _T2, _T3, _T4, _T5, 
<       _T6, _T7, _T8, _T9>::__type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8, __t9
< 				    );};
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
> 				   _Tp7, _Tp8, _Tp9>::__type
>     make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
> 	       _Tp5 __t5, _Tp6 __t6, _Tp7 __t7, _Tp8 __t8, _Tp9 __t9)
>     {
>       return typename  __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
> 					     _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>::
>         __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8, __t9);
>     }
> 
>   // A class (and instance) which can be used in 'tie' when an element
>   // of a tuple is not required
1399,1400d1427
<   // A class (and instance) which can be used in 'tie' when a element
<   // is not required.
1404c1431
<       swallow_assign&
---
>     swallow_assign&
1415,1422d1441
<   //  extern swallow_assign ignore;
< 
< 
<   // Allows forms a tuple of references to a list of variables.
<   template<typename _T0>
<     tuple<_T0&>
<     tie(_T0& __t0)
<     { return make_tuple(ref(__t0)); };
1424,1427c1443,1449
<   template<typename _T0, typename _T1>
<     tuple<_T0&, _T1&>
<     tie(_T0& __t0, _T1& __t1)
<     { return make_tuple(ref(__t0), ref(__t1)); };
---
>   // Forms a tuple of references to a list of variables.
>   template< typename _Tp0>
>     tuple< _Tp0&>
>     tie( _Tp0& __t0)
>     {
>       return make_tuple( ref(__t0));
>     };
1429,1432c1451,1456
<   template<typename _T0, typename _T1, typename _T2>
<     tuple<_T0&, _T1&, _T2&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2)
<     { return make_tuple(ref(__t0), ref(__t1), ref(__t2)); };
---
>   template<typename _Tp0, typename _Tp1>
>     tuple<_Tp0&, _Tp1&>
>     tie(_Tp0& __t0, _Tp1& __t1)
>     {
>       return make_tuple(ref(__t0), ref(__t1));
>     };
1434,1437c1458,1463
<   template<typename _T0, typename _T1, typename _T2, typename _T3>
<     tuple<_T0&, _T1&, _T2&, _T3&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3)
<     { return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3)); };
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2>
>     tuple<_Tp0&, _Tp1&, _Tp2&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2)
>     {
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2));
>     };
1439,1444c1465,1469
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4)
<     { 
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4));
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3)
>     {
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3));
1447,1450c1472,1475
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&, _T5&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4, _T5& __t5)
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4)
1452,1453c1477,1478
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), 
< 			ref(__t4), ref(__t5));
---
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3),
> 		        ref(__t4));
1456,1460c1481,1485
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&, _T5&, _T6&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4, 
< 	_T5& __t5, _T6& __t6)
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4,
>         _Tp5& __t5)
1462,1463c1487,1488
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), 
< 			ref(__t4), ref(__t5), ref(__t6));
---
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
> 		        ref(__t5));
1466,1470c1491,1495
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4, 
< 	_T5& __t5, _T6& __t6, _T7& __t7)
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
>         _Tp6& __t6)
1472,1473c1497,1498
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), 
< 			ref(__t4), ref(__t5), ref(__t6), ref(__t7));
---
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
> 		        ref(__t5), ref(__t6));
1476,1481c1501,1505
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4, 
< 	_T5& __t5, _T6& __t6, _T7& __t7, _T8& __t8)
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
>         _Tp6& __t6, _Tp7& __t7)
1483,1484c1507,1508
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), 
< 			ref(__t4), ref(__t5), ref(__t6), ref(__t7), ref(__t8));
---
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
> 		        ref(__t5), ref(__t6), ref(__t7));
1487,1492c1511,1516
<   template<typename _T0, typename _T1, typename _T2, typename _T3, 
< 	   typename _T4, typename _T5, typename _T6, typename _T7, 
< 	   typename _T8, typename _T9>
<     tuple<_T0&, _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&>
<     tie(_T0& __t0, _T1& __t1, _T2& __t2, _T3& __t3, _T4& __t4, 
< 	_T5& __t5, _T6& __t6, _T7& __t7, _T8& __t8, _T9& __t9)
---
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&, _Tp8&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
>         _Tp6& __t6, _Tp7& __t7, _Tp8& __t8)
1494,1496c1518,1532
<       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), 
< 			ref(__t4), ref(__t5), ref(__t6), ref(__t7), ref(__t8), 
< 			ref(__t9));
---
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
> 		        ref(__t5), ref(__t6), ref(__t7), ref(__t8));
>     };
> 
>   template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
> 	   typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
> 	   typename _Tp8, typename _Tp9>
>     tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&, _Tp8&,
> 	  _Tp9&>
>     tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
>         _Tp6& __t6, _Tp7& __t7, _Tp8& __t8, _Tp9& __t9)
>     {
>       return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
> 		        ref(__t5), ref(__t6), ref(__t7), ref(__t8),
> 		        ref(__t9));
1500,1501c1536,1537
<   template<class _T1, class _T2>
<     struct tuple_size<std::pair<_T1, _T2> >
---
>   template<class _Tp1, class _Tp2>
>     struct tuple_size<std::pair<_Tp1, _Tp2> >
1504,1514c1540,1550
<   template<class _T1, class _T2>
<     struct tuple_element<0, std::pair<_T1, _T2> >
<     { typedef _T1 type; };
< 
<   template<class _T1, class _T2>
<     struct tuple_element<1, std::pair<_T1, _T2> >
<     { typedef _T2 type; };
< 
<   template<int _I,class _T1,class _T2>
<     typename tuple_element<_I, tuple<_T1, _T2> >::type
<     get(pair<_T1, _T2>& __in)
---
>   template<class _Tp1, class _Tp2>
>     struct tuple_element<0, std::pair<_Tp1, _Tp2> >
>     { typedef _Tp1 type; };
> 
>   template<class _Tp1, class _Tp2>
>     struct tuple_element<1, std::pair<_Tp1, _Tp2> >
>     { typedef _Tp2 type; };
> 
>   template<int _I, class _Tp1, class _Tp2>
>     typename tuple_element<_I, tuple<_Tp1, _Tp2> >::type
>     get(pair<_Tp1, _Tp2>& __in)
1517,1519c1553,1555
<   template<int _I,class _T1,class _T2>
<     typename tuple_element<_I, tuple<_T1, _T2> >::type
<     get(const pair<_T1, _T2>& __in)
---
>   template<int _I, class _Tp1, class _Tp2>
>     typename tuple_element<_I, tuple<_Tp1, _Tp2> >::type
>     get(const pair<_Tp1, _Tp2>& __in)
1520a1557
> 
1524a1562
> 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]