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

Side by Side Diff: base/tuple.h

Issue 10735044: Remove #pragma once. Just from base/ for now. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « base/tracked_objects.h ('k') | base/utf_offset_string_conversions.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 10 matching lines...) Expand all
21 // DispatchToFunction(&SomeFunc, tuple_a); // SomeFunc(1, "wee") 21 // DispatchToFunction(&SomeFunc, tuple_a); // SomeFunc(1, "wee")
22 // DispatchToFunction( 22 // DispatchToFunction(
23 // &SomeFunc, MakeTuple(10, "foo")); // SomeFunc(10, "foo") 23 // &SomeFunc, MakeTuple(10, "foo")); // SomeFunc(10, "foo")
24 // 24 //
25 // struct { void SomeMeth(int a, int b, int c) { } } foo; 25 // struct { void SomeMeth(int a, int b, int c) { } } foo;
26 // DispatchToMethod(&foo, &Foo::SomeMeth, MakeTuple(1, 2, 3)); 26 // DispatchToMethod(&foo, &Foo::SomeMeth, MakeTuple(1, 2, 3));
27 // // foo->SomeMeth(1, 2, 3); 27 // // foo->SomeMeth(1, 2, 3);
28 28
29 #ifndef BASE_TUPLE_H__ 29 #ifndef BASE_TUPLE_H__
30 #define BASE_TUPLE_H__ 30 #define BASE_TUPLE_H__
31 #pragma once
32 31
33 // Traits ---------------------------------------------------------------------- 32 // Traits ----------------------------------------------------------------------
34 // 33 //
35 // A simple traits class for tuple arguments. 34 // A simple traits class for tuple arguments.
36 // 35 //
37 // ValueType: the bare, nonref version of a type (same as the type for nonrefs). 36 // ValueType: the bare, nonref version of a type (same as the type for nonrefs).
38 // RefType: the ref version of a type (same as the type for refs). 37 // RefType: the ref version of a type (same as the type for refs).
39 // ParamType: what type to pass to functions (refs should not be constified). 38 // ParamType: what type to pass to functions (refs should not be constified).
40 39
41 template <class P> 40 template <class P>
(...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 class InA, class InB, class InC, class InD, class InE, class InF, 1042 class InA, class InB, class InC, class InD, class InE, class InF,
1044 class OutA, class OutB, class OutC, class OutD, class OutE> 1043 class OutA, class OutB, class OutC, class OutD, class OutE>
1045 inline void DispatchToMethod(ObjT* obj, Method method, 1044 inline void DispatchToMethod(ObjT* obj, Method method,
1046 const Tuple6<InA, InB, InC, InD, InE, InF>& in, 1045 const Tuple6<InA, InB, InC, InD, InE, InF>& in,
1047 Tuple5<OutA, OutB, OutC, OutD, OutE>* out) { 1046 Tuple5<OutA, OutB, OutC, OutD, OutE>* out) {
1048 (obj->*method)(in.a, in.b, in.c, in.d, in.e, in.f, 1047 (obj->*method)(in.a, in.b, in.c, in.d, in.e, in.f,
1049 &out->a, &out->b, &out->c, &out->d, &out->e); 1048 &out->a, &out->b, &out->c, &out->d, &out->e);
1050 } 1049 }
1051 1050
1052 #endif // BASE_TUPLE_H__ 1051 #endif // BASE_TUPLE_H__
OLDNEW
« no previous file with comments | « base/tracked_objects.h ('k') | base/utf_offset_string_conversions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698