Lines Matching refs:Values
54 template<typename... Values> class tuple;
103 template<typename... Values>
104 tuple<typename make_tuple_result<Values>::type...>
105 make_tuple(const Values&... values) {
106 return tuple<typename make_tuple_result<Values>::type...>(values...);
109 template<typename... Values>
110 tuple<Values&...> tie(Values&... values) {
111 return tuple<Values&...>(values...);
117 template<typename... Values> struct tuple_size<tuple<Values...> > {
118 static const int value = sizeof...(Values);
135 template<int I, typename Head, typename... Values>
136 class get_impl<I, tuple<Head, Values...> > {
137 typedef typename tuple_element<I-1, tuple<Values...> >::type Element;
140 typedef get_impl<I-1, tuple<Values...> > Next;
142 static RJ get(tuple<Head, Values...>& t) { return Next::get(t.tail()); }
143 static PJ get(const tuple<Head, Values...>& t) { return Next::get(t.tail()); }
146 template<typename Head, typename... Values>
147 class get_impl<0, tuple<Head, Values...> > {
151 static RJ get(tuple<Head, Values...>& t) { return t.head(); }
152 static PJ get(const tuple<Head, Values...>& t) { return t.head(); }
155 template<int I, typename... Values> typename add_reference<
156 typename tuple_element<I, tuple<Values...> >::type >::type
157 get(tuple<Values...>& t) {
158 return get_impl<I, tuple<Values...> >::get(t);
161 template<int I, typename... Values> typename add_const_reference<
162 typename tuple_element<I, tuple<Values...> >::type >::type
163 get(const tuple<Values...>& t) {
164 return get_impl<I, tuple<Values...> >::get(t);
268 template<int I, typename... Values>
269 struct safe_tuple_element<I, tuple<Values...>,
270 typename enable_if<(I >= 0 && I < tuple_size<tuple<Values...> >::value)>::type> {
271 typedef typename tuple_element<I, tuple<Values...> >::type type;