Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: base/tuple.h

Issue 249363004: Revert of Style cleanup in preparation for auto-linting base/. (Closed)
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/trace_event.h ('k') | base/values.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // A Tuple is a generic templatized container, similar in concept to std::pair. 5 // A Tuple is a generic templatized container, similar in concept to std::pair.
6 // There are classes Tuple0 to Tuple6, cooresponding to the number of elements 6 // There are classes Tuple0 to Tuple6, cooresponding to the number of elements
7 // it contains. The convenient MakeTuple() function takes 0 to 6 arguments, 7 // it contains. The convenient MakeTuple() function takes 0 to 6 arguments,
8 // and will construct and return the appropriate Tuple object. The functions 8 // and will construct and return the appropriate Tuple object. The functions
9 // DispatchToMethod and DispatchToFunction take a function pointer or instance 9 // DispatchToMethod and DispatchToFunction take a function pointer or instance
10 // and method pointer, and unpack a tuple into arguments to the call. 10 // and method pointer, and unpack a tuple into arguments to the call.
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 } 164 }
165 165
166 A a; 166 A a;
167 B b; 167 B b;
168 C c; 168 C c;
169 D d; 169 D d;
170 }; 170 };
171 171
172 template <class A, class B, class C, class D, class E> 172 template <class A, class B, class C, class D, class E>
173 struct Tuple5 { 173 struct Tuple5 {
174 public: 174 public:
175 typedef A TypeA; 175 typedef A TypeA;
176 typedef B TypeB; 176 typedef B TypeB;
177 typedef C TypeC; 177 typedef C TypeC;
178 typedef D TypeD; 178 typedef D TypeD;
179 typedef E TypeE; 179 typedef E TypeE;
180 typedef Tuple5<typename TupleTraits<A>::ValueType, 180 typedef Tuple5<typename TupleTraits<A>::ValueType,
181 typename TupleTraits<B>::ValueType, 181 typename TupleTraits<B>::ValueType,
182 typename TupleTraits<C>::ValueType, 182 typename TupleTraits<C>::ValueType,
183 typename TupleTraits<D>::ValueType, 183 typename TupleTraits<D>::ValueType,
184 typename TupleTraits<E>::ValueType> ValueTuple; 184 typename TupleTraits<E>::ValueType> ValueTuple;
(...skipping 19 matching lines...) Expand all
204 204
205 A a; 205 A a;
206 B b; 206 B b;
207 C c; 207 C c;
208 D d; 208 D d;
209 E e; 209 E e;
210 }; 210 };
211 211
212 template <class A, class B, class C, class D, class E, class F> 212 template <class A, class B, class C, class D, class E, class F>
213 struct Tuple6 { 213 struct Tuple6 {
214 public: 214 public:
215 typedef A TypeA; 215 typedef A TypeA;
216 typedef B TypeB; 216 typedef B TypeB;
217 typedef C TypeC; 217 typedef C TypeC;
218 typedef D TypeD; 218 typedef D TypeD;
219 typedef E TypeE; 219 typedef E TypeE;
220 typedef F TypeF; 220 typedef F TypeF;
221 typedef Tuple6<typename TupleTraits<A>::ValueType, 221 typedef Tuple6<typename TupleTraits<A>::ValueType,
222 typename TupleTraits<B>::ValueType, 222 typename TupleTraits<B>::ValueType,
223 typename TupleTraits<C>::ValueType, 223 typename TupleTraits<C>::ValueType,
224 typename TupleTraits<D>::ValueType, 224 typename TupleTraits<D>::ValueType,
(...skipping 25 matching lines...) Expand all
250 A a; 250 A a;
251 B b; 251 B b;
252 C c; 252 C c;
253 D d; 253 D d;
254 E e; 254 E e;
255 F f; 255 F f;
256 }; 256 };
257 257
258 template <class A, class B, class C, class D, class E, class F, class G> 258 template <class A, class B, class C, class D, class E, class F, class G>
259 struct Tuple7 { 259 struct Tuple7 {
260 public: 260 public:
261 typedef A TypeA; 261 typedef A TypeA;
262 typedef B TypeB; 262 typedef B TypeB;
263 typedef C TypeC; 263 typedef C TypeC;
264 typedef D TypeD; 264 typedef D TypeD;
265 typedef E TypeE; 265 typedef E TypeE;
266 typedef F TypeF; 266 typedef F TypeF;
267 typedef G TypeG; 267 typedef G TypeG;
268 typedef Tuple7<typename TupleTraits<A>::ValueType, 268 typedef Tuple7<typename TupleTraits<A>::ValueType,
269 typename TupleTraits<B>::ValueType, 269 typename TupleTraits<B>::ValueType,
270 typename TupleTraits<C>::ValueType, 270 typename TupleTraits<C>::ValueType,
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 } 602 }
603 603
604 template<class ObjT, class Method, class InA, class InB, class InC, class InD, 604 template<class ObjT, class Method, class InA, class InB, class InC, class InD,
605 class OutA> 605 class OutA>
606 inline void DispatchToMethod(ObjT* obj, Method method, 606 inline void DispatchToMethod(ObjT* obj, Method method,
607 const Tuple4<InA, InB, InC, InD>& in, 607 const Tuple4<InA, InB, InC, InD>& in,
608 Tuple1<OutA>* out) { 608 Tuple1<OutA>* out) {
609 (obj->*method)(in.a, in.b, in.c, in.d, &out->a); 609 (obj->*method)(in.a, in.b, in.c, in.d, &out->a);
610 } 610 }
611 611
612 template<class ObjT, class Method, class InA, class InB, class InC, class InD, 612 template<class ObjT, class Method,
613 class InE, class OutA> 613 class InA, class InB, class InC, class InD, class InE,
614 class OutA>
614 inline void DispatchToMethod(ObjT* obj, Method method, 615 inline void DispatchToMethod(ObjT* obj, Method method,
615 const Tuple5<InA, InB, InC, InD, InE>& in, 616 const Tuple5<InA, InB, InC, InD, InE>& in,
616 Tuple1<OutA>* out) { 617 Tuple1<OutA>* out) {
617 (obj->*method)(in.a, in.b, in.c, in.d, in.e, &out->a); 618 (obj->*method)(in.a, in.b, in.c, in.d, in.e, &out->a);
618 } 619 }
619 620
620 template<class ObjT, class Method, 621 template<class ObjT, class Method,
621 class InA, class InB, class InC, class InD, class InE, class InF, 622 class InA, class InB, class InC, class InD, class InE, class InF,
622 class OutA> 623 class OutA>
623 inline void DispatchToMethod(ObjT* obj, Method method, 624 inline void DispatchToMethod(ObjT* obj, Method method,
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 class InA, class InB, class InC, class InD, class InE, class InF, 898 class InA, class InB, class InC, class InD, class InE, class InF,
898 class OutA, class OutB, class OutC, class OutD, class OutE> 899 class OutA, class OutB, class OutC, class OutD, class OutE>
899 inline void DispatchToMethod(ObjT* obj, Method method, 900 inline void DispatchToMethod(ObjT* obj, Method method,
900 const Tuple6<InA, InB, InC, InD, InE, InF>& in, 901 const Tuple6<InA, InB, InC, InD, InE, InF>& in,
901 Tuple5<OutA, OutB, OutC, OutD, OutE>* out) { 902 Tuple5<OutA, OutB, OutC, OutD, OutE>* out) {
902 (obj->*method)(in.a, in.b, in.c, in.d, in.e, in.f, 903 (obj->*method)(in.a, in.b, in.c, in.d, in.e, in.f,
903 &out->a, &out->b, &out->c, &out->d, &out->e); 904 &out->a, &out->b, &out->c, &out->d, &out->e);
904 } 905 }
905 906
906 #endif // BASE_TUPLE_H__ 907 #endif // BASE_TUPLE_H__
OLDNEW
« no previous file with comments | « base/trace_event.h ('k') | base/values.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698