56 #ifndef _GLIBCXX_UTILITY
57 #define _GLIBCXX_UTILITY 1
59 #pragma GCC system_header
73 #ifdef __GXX_EXPERIMENTAL_CXX0X__
77 namespace std _GLIBCXX_VISIBILITY(default)
79 _GLIBCXX_BEGIN_NAMESPACE_VERSION
84 template<std::
size_t _Int,
class _Tp>
88 template<
class _Tp1,
class _Tp2>
89 struct tuple_size<std::pair<_Tp1, _Tp2> >
90 {
static const std::size_t value = 2; };
92 template<
class _Tp1,
class _Tp2>
94 tuple_size<std::pair<_Tp1, _Tp2> >::value;
96 template<
class _Tp1,
class _Tp2>
97 struct tuple_element<0, std::pair<_Tp1, _Tp2> >
98 {
typedef _Tp1 type; };
100 template<
class _Tp1,
class _Tp2>
101 struct tuple_element<1, std::pair<_Tp1, _Tp2> >
102 {
typedef _Tp2 type; };
104 template<std::
size_t _Int>
110 template<
typename _Tp1,
typename _Tp2>
112 {
return __pair.
first; }
114 template<
typename _Tp1,
typename _Tp2>
116 {
return __pair.
first; }
122 template<
typename _Tp1,
typename _Tp2>
126 template<
typename _Tp1,
typename _Tp2>
131 template<std::
size_t _Int,
class _Tp1,
class _Tp2>
132 inline typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&
134 {
return __pair_get<_Int>::__get(__in); }
136 template<std::
size_t _Int,
class _Tp1,
class _Tp2>
137 inline const typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&
139 {
return __pair_get<_Int>::__const_get(__in); }
141 _GLIBCXX_END_NAMESPACE_VERSION
Struct holding two objects of arbitrary type.
_T1 first
second_type is the second bound type
_T2 second
first is a copy of the first object