Lines Matching refs:tuple

1 // class template tuple -*- C++ -*-
25 /** @file tr1/tuple
64 * Contains the actual implementation of the @c tuple template, stored
75 * Zero-element tuple implementation. This is the basis case for the
82 * Recursive tuple implementation. Here we store the @c Head element
130 class tuple : public _Tuple_impl<0, _Elements...>
135 tuple() : _Inherited() { }
138 tuple(typename __add_c_ref<_Elements>::type... __elements)
142 tuple(const tuple<_UElements...>& __in)
145 tuple(const tuple& __in)
149 tuple&
150 operator=(const tuple<_UElements...>& __in)
156 tuple&
157 operator=(const tuple& __in)
164 template<> class tuple<> { };
166 // 2-element tuple, with construction and assignment from a pair.
168 class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2>
173 tuple() : _Inherited() { }
176 tuple(typename __add_c_ref<_T1>::type __a1,
181 tuple(const tuple<_U1, _U2>& __in)
184 tuple(const tuple& __in)
188 tuple(const pair<_U1, _U2>& __in)
196 tuple&
197 operator=(const tuple<_U1, _U2>& __in)
203 tuple&
204 operator=(const tuple& __in)
211 tuple&
221 /// Gives the type of the ith element of a given tuple type.
227 * the tuple and retrieve the (i-1)th element of the remaining tuple.
230 struct tuple_element<__i, tuple<_Head, _Tail...> >
231 : tuple_element<__i - 1, tuple<_Tail...> > { };
237 struct tuple_element<0, tuple<_Head, _Tail...> >
242 /// Finds the size of a given tuple type.
248 struct tuple_size<tuple<_Elements...> >
254 const int tuple_size<tuple<_Elements...> >::value;
270 // Return a reference (const reference) to the ith element of a tuple.
274 typename tuple_element<__i, tuple<_Elements...> >::type
276 get(tuple<_Elements...>& __t)
283 typename tuple_element<__i, tuple<_Elements...> >::type
285 get(const tuple<_Elements...>& __t)
324 operator==(const tuple<_TElements...>& __t,
325 const tuple<_UElements...>& __u)
327 typedef tuple<_TElements...> _Tp;
328 typedef tuple<_UElements...> _Up;
335 operator<(const tuple<_TElements...>& __t,
336 const tuple<_UElements...>& __u)
338 typedef tuple<_TElements...> _Tp;
339 typedef tuple<_UElements...> _Up;
346 operator!=(const tuple<_TElements...>& __t,
347 const tuple<_UElements...>& __u)
352 operator>(const tuple<_TElements...>& __t,
353 const tuple<_UElements...>& __u)
358 operator<=(const tuple<_TElements...>& __t,
359 const tuple<_UElements...>& __u)
364 operator>=(const tuple<_TElements...>& __t,
365 const tuple<_UElements...>& __u)
391 inline tuple<typename __strip_reference_wrapper<_Elements>::__type...>
394 typedef tuple<typename __strip_reference_wrapper<_Elements>::__type...>
400 inline tuple<_Elements&...>
403 return tuple<_Elements&...>(__args...);
407 // of a tuple is not required