summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 21:18:56 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 21:18:56 +0000
commitc85df9ac2ac1f38a34922276d563641e40eb41fa (patch)
tree27490ab3566606ab86bedaf2fbf54b85c8c9f197
parent8a2df6f8bf15595048c1b26660e2169bec58e8d8 (diff)
downloadgcc-c85df9ac2ac1f38a34922276d563641e40eb41fa.tar.gz
2004-10-28 Chris Jefferson <chris@bubblescope.net>
PR libstdc++/18159 * include/tr1/tuple: Fix, change formatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89782 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/tr1/tuple2626
2 files changed, 1337 insertions, 1294 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 561c3670dc6..81f88ffda31 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-28 Chris Jefferson <chris@bubblescope.net>
+
+ PR libstdc++/18159
+ * include/tr1/tuple: Fix, change formatting.
+
2004-10-28 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/mt_allocator.h (__common_pool_policy): Add template
diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple
index d17135ad153..272edc3cb91 100644
--- a/libstdc++-v3/include/tr1/tuple
+++ b/libstdc++-v3/include/tr1/tuple
@@ -36,1372 +36,1399 @@ namespace tr1
struct _NullClass { };
// Foward definition of the tuple class
- 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>
class tuple;
// Gives the type of the ith element of a given tuple type.
- template<int __i, typename _T>
+ template<int __i, typename _Tp>
struct tuple_element;
- 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; };
+
// Finds the size of a given tuple type.
- // 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>
struct tuple_size;
template<>
- struct tuple_size<tuple<_NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass,
+ struct tuple_size<tuple<_NullClass, _NullClass, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass, _NullClass,
_NullClass, _NullClass> >
{ static const int value = 0; };
-
- 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,
_NullClass, _NullClass> >
{ static const int value = 1; };
-
- 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,
_NullClass> >
{ static const int value = 2; };
-
- 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,
_NullClass> >
{ static const int value = 3; };
-
- 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,
_NullClass, _NullClass, _NullClass, _NullClass> >
{ static const int value = 4; };
-
- 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,
_NullClass, _NullClass, _NullClass, _NullClass> >
{ static const int value = 5; };
-
- 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,
_NullClass, _NullClass, _NullClass> >
{ static const int value = 6; };
-
- 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,
_NullClass, _NullClass, _NullClass> >
{ static const int value = 7; };
-
- 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,
_NullClass, _NullClass> >
{ static const int value = 8; };
-
- 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> >
{ static const int value = 9; };
-
- 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> >
{ static const int value = 10; };
-
+
// Adds a const reference to a non-reference type.
- 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; };
+
// Adds a reference to a non-reference type.
- template<typename _T>
+ template<typename _Tp>
struct __add_ref
- { 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; };
+
// The empty tuple.
template<>
- class tuple<_NullClass, _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
+ class tuple<_NullClass, _NullClass, _NullClass, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
{
public:
tuple()
{ }
-
+
tuple(const tuple& __in)
{ }
-
+
tuple& operator=(const tuple& __in)
{ return *this; }
};
-
- 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>
{
- _T0 __t0;
+ _Tp0 _M_t0;
public:
tuple()
{ }
-
- explicit tuple(typename __add_const_ref<_T0>::type __in0):
- __t0(__in0)
+
+ explicit tuple( typename __add_c_ref<_Tp0>::type __in0):
+ _M_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)
- {
- __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;
+
+ 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 _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)
+
+ template<typename _Tp0, typename _Tp1>
+ class tuple<_Tp0, _Tp1, _NullClass, _NullClass, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass, _NullClass>
{
- __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;
+ _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 _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)
+
+ template<typename _Tp0, typename _Tp1, typename _Tp2>
+ class tuple<_Tp0, _Tp1, _Tp2, _NullClass, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass, _NullClass>
{
- __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;
+ _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 _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)
+
+ template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
+ class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _NullClass, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass>
{
- __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;
+ _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 _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)
+
+ template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
+ typename _Tp4>
+ class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _NullClass, _NullClass,
+ _NullClass, _NullClass, _NullClass>
{
- __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;
+ _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 _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)
+
+ 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>
{
- __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;
+ _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 _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)
+
+ 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>
{
- __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;
+ _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 _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)
+
+ 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>
{
- __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;
+ _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 _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)
+
+ 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>
{
- __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;
+ _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 _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)
+
+ template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
+ typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
+ typename _Tp8, typename _Tp9>
+ class tuple
{
- __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;
+ _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;
};
-
+
// Class used in the implementation of get
- template<int __i, typename _T>
+ template<int __i, typename _Tp>
struct __get_helper;
- template<typename _T>
- struct __get_helper<0, _T>
+ template<typename _Tp>
+ struct __get_helper<0, _Tp>
{
- static typename __add_ref<typename tuple_element<0, _T>::type>::type
- get_value(_T& __in)
- { return __in.__t0; }
+ static typename __add_ref<typename tuple_element<0, _Tp>::type>::type
+ get_value(_Tp& __in)
+ { return __in._M_t0; }
- static typename __add_const_ref<typename tuple_element<0, _T>::type>::type
- get_value(const _T& __in)
- { return __in.__t0; }
+ static typename __add_c_ref<typename tuple_element<0, _Tp>::type>::type
+ get_value(const _Tp& __in)
+ { return __in._M_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)
- {
- return __in.__t5;
- }
- static typename __add_const_ref<typename tuple_element<5, _T>::type>::type
- get_value(const _T& __in)
+
+ template<typename _Tp>
+ struct __get_helper<1, _Tp>
{
- 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>
{
- 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>
{
- 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>
{
- 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>
{
- 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>
{
- 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>
{
- 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>
{
- 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>
{
- 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; }
+ };
+
/* Returns a reference to the ith element of a tuple.
* Any const or non-const ref elements are returned with their original type
*/
- 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);
+ }
/* Returns a const reference to the ith element of a tuple.
* Any const or non-const ref elements are returned with their original type
*/
- 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);
+ }
// This class helps construct the various comparison operations on tuples
- 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;
- 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)
- {
- 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)
+ template<int __i, int __j, typename _Tp, typename _Up>
+ struct __tuple_compare<0, __i, __j, _Tp, _Up>
{
- 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>
{
- 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; }
+ };
- 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>
bool
- 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)
{
- 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);
}
- 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>
bool
- 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)
{
- 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);
}
- 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>
bool
- 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)
{
- 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);
}
- 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>
bool
- 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)
{
- 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);
}
- 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>
bool
- 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)
{
- 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);
}
- 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>
bool
- 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)
{
- 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);
}
// Provides a way to annotate that a reference to
// an object should be passed.
- 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;
+ }
+ };
// Denotes a reference should be taken to a variable.
- 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);
+ }
// Denotes a const reference should be taken to a variable.
- 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);
+ }
// Helper which adds a reference to a type when given a reference_wrapper
- template<typename _T>
+ template<typename _Tp>
struct __strip_reference_wrapper
- { typedef _T __type; };
+ {
+ typedef _Tp __type;
+ };
- template<typename _T>
- struct __strip_reference_wrapper<reference_wrapper<_T> >
- { typedef _T& __type; };
+ template<typename _Tp>
+ struct __strip_reference_wrapper<reference_wrapper<_Tp> >
+ {
+ typedef _Tp& __type;
+ };
- template<typename _T>
- struct __strip_reference_wrapper<const reference_wrapper<_T> >
- { typedef _T& __type; };
+ template<typename _Tp>
+ struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
+ {
+ typedef _Tp& __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 _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>
struct __stripped_tuple_type
{
- 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;
};
tuple<>
make_tuple()
- {
- return tuple<>();
- };
+ { return tuple<>(); }
- 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);
+ }
- 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);
+ }
- 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);
+ }
- 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);
+ }
- 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);
+ }
- 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 _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 _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 _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 _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 __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);
+ }
+
+ 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);
+ }
+
+ 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);
+ }
+
+ 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);
+ }
+
+ 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
- // A class (and instance) which can be used in 'tie' when a element
- // is not required.
struct swallow_assign
{
template<class T>
- swallow_assign&
+ swallow_assign&
operator=(const T&)
{ return *this; }
};
@@ -1412,113 +1439,124 @@ namespace tr1
swallow_assign ignore;
};
- // extern swallow_assign ignore;
+ // Forms a tuple of references to a list of variables.
+ template< typename _Tp0>
+ tuple< _Tp0&>
+ tie( _Tp0& __t0)
+ {
+ return make_tuple( ref(__t0));
+ };
- // Allows forms a tuple of references to a list of variables.
- template<typename _T0>
- tuple<_T0&>
- tie(_T0& __t0)
- { return make_tuple(ref(__t0)); };
-
- template<typename _T0, typename _T1>
- tuple<_T0&, _T1&>
- tie(_T0& __t0, _T1& __t1)
- { return make_tuple(ref(__t0), ref(__t1)); };
+ template<typename _Tp0, typename _Tp1>
+ tuple<_Tp0&, _Tp1&>
+ tie(_Tp0& __t0, _Tp1& __t1)
+ {
+ return make_tuple(ref(__t0), ref(__t1));
+ };
- 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, typename _Tp2>
+ tuple<_Tp0&, _Tp1&, _Tp2&>
+ tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2)
+ {
+ return make_tuple(ref(__t0), ref(__t1), ref(__t2));
+ };
- 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, 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));
+ };
- 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,
+ typename _Tp4>
+ tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&>
+ tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4)
+ {
+ return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3),
+ ref(__t4));
};
- 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, typename _Tp5>
+ tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&>
+ tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4,
+ _Tp5& __t5)
{
- 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),
+ ref(__t5));
};
- 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, 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)
{
- 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), ref(__t6));
};
- 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, 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)
{
- 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), ref(__t7));
};
- 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,
+ 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)
{
- 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), ref(__t8));
};
- 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, 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));
+ return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
+ ref(__t5), ref(__t6), ref(__t7), ref(__t8),
+ ref(__t9));
};
// Various functions which give std::pair a tuple-like interface.
- template<class _T1, class _T2>
- struct tuple_size<std::pair<_T1, _T2> >
+ template<class _Tp1, class _Tp2>
+ struct tuple_size<std::pair<_Tp1, _Tp2> >
{ static const int value = 2; };
- template<class _T1, class _T2>
- struct tuple_element<0, std::pair<_T1, _T2> >
- { typedef _T1 type; };
+ template<class _Tp1, class _Tp2>
+ struct tuple_element<0, std::pair<_Tp1, _Tp2> >
+ { typedef _Tp1 type; };
- template<class _T1, class _T2>
- struct tuple_element<1, std::pair<_T1, _T2> >
- { typedef _T2 type; };
+ template<class _Tp1, class _Tp2>
+ struct tuple_element<1, std::pair<_Tp1, _Tp2> >
+ { typedef _Tp2 type; };
- template<int _I,class _T1,class _T2>
- typename tuple_element<_I, tuple<_T1, _T2> >::type
- get(pair<_T1, _T2>& __in)
+ template<int _I, class _Tp1, class _Tp2>
+ typename tuple_element<_I, tuple<_Tp1, _Tp2> >::type
+ get(pair<_Tp1, _Tp2>& __in)
{ return get<_I>(tie(__in.first, __in.second)); }
- 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)
{ return get<_I>(tie(__in.first, __in.second)); }
+
}
}
#endif
+