STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions
utility File Reference
#include <bits/c++config.h>
#include <bits/stl_relops.h>
#include <bits/stl_pair.h>

Macros

#define _GLIBCXX_TR1_UTILITY   1
 

Functions

namespace std _GLIBCXX_VISIBILITY (default)
 

Detailed Description

This is a TR1 C++ Library header.

Macro Definition Documentation

#define _GLIBCXX_TR1_UTILITY   1

Function Documentation

namespace std _GLIBCXX_VISIBILITY ( default  )
39 {
40 namespace tr1
41 {
42 _GLIBCXX_BEGIN_NAMESPACE_VERSION
43 
44  template<class _Tp>
45  class tuple_size;
46 
47  template<int _Int, class _Tp>
48  class tuple_element;
49 
50  // Various functions which give std::pair a tuple-like interface.
51  template<class _Tp1, class _Tp2>
52  struct tuple_size<std::pair<_Tp1, _Tp2> >
53  { static const int value = 2; };
54 
55  template<class _Tp1, class _Tp2>
56  const int
57  tuple_size<std::pair<_Tp1, _Tp2> >::value;
58 
59  template<class _Tp1, class _Tp2>
60  struct tuple_element<0, std::pair<_Tp1, _Tp2> >
61  { typedef _Tp1 type; };
62 
63  template<class _Tp1, class _Tp2>
64  struct tuple_element<1, std::pair<_Tp1, _Tp2> >
65  { typedef _Tp2 type; };
66 
67  template<int _Int>
68  struct __pair_get;
69 
70  template<>
71  struct __pair_get<0>
72  {
73  template<typename _Tp1, typename _Tp2>
74  static _Tp1& __get(std::pair<_Tp1, _Tp2>& __pair)
75  { return __pair.first; }
76 
77  template<typename _Tp1, typename _Tp2>
78  static const _Tp1& __const_get(const std::pair<_Tp1, _Tp2>& __pair)
79  { return __pair.first; }
80  };
81 
82  template<>
83  struct __pair_get<1>
84  {
85  template<typename _Tp1, typename _Tp2>
86  static _Tp2& __get(std::pair<_Tp1, _Tp2>& __pair)
87  { return __pair.second; }
88 
89  template<typename _Tp1, typename _Tp2>
90  static const _Tp2& __const_get(const std::pair<_Tp1, _Tp2>& __pair)
91  { return __pair.second; }
92  };
93 
94  template<int _Int, class _Tp1, class _Tp2>
95  inline typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&
96  get(std::pair<_Tp1, _Tp2>& __in)
97  { return __pair_get<_Int>::__get(__in); }
98 
99  template<int _Int, class _Tp1, class _Tp2>
100  inline const typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&
101  get(const std::pair<_Tp1, _Tp2>& __in)
102  { return __pair_get<_Int>::__const_get(__in); }
103 
104 _GLIBCXX_END_NAMESPACE_VERSION
105 }
106 }