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

Side by Side Diff: base/callback.h

Issue 11091056: Fix up base/bind documentation - elaborate on reference binding. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // This file was GENERATED by command: 1 // This file was GENERATED by command:
2 // pump.py callback.h.pump 2 // pump.py callback.h.pump
3 // DO NOT EDIT BY HAND!!! 3 // DO NOT EDIT BY HAND!!!
4 4
5 5
6 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 6 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
7 // Use of this source code is governed by a BSD-style license that can be 7 // Use of this source code is governed by a BSD-style license that can be
8 // found in the LICENSE file. 8 // found in the LICENSE file.
9 9
10 #ifndef BASE_CALLBACK_H_ 10 #ifndef BASE_CALLBACK_H_
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // - Performing compile-time asserts to avoid error-prone behavior 262 // - Performing compile-time asserts to avoid error-prone behavior
263 // - Returning an Callback<> with an arity matching the number of unbound 263 // - Returning an Callback<> with an arity matching the number of unbound
264 // parameters and that knows the correct refcounting semantics for the 264 // parameters and that knows the correct refcounting semantics for the
265 // target object if we are binding a method. 265 // target object if we are binding a method.
266 // 266 //
267 // The Bind functions do the above using type-inference, and template 267 // The Bind functions do the above using type-inference, and template
268 // specializations. 268 // specializations.
269 // 269 //
270 // By default Bind() will store copies of all bound parameters, and attempt 270 // By default Bind() will store copies of all bound parameters, and attempt
271 // to refcount a target object if the function being bound is a class method. 271 // to refcount a target object if the function being bound is a class method.
272 // These copies are created even if the function takes parameters as const or 272 // These copies are created even if the function takes parameters as const
273 // non-const references. 273 // references. (Binding to non-const references is forbidden, see bind.h)
274 // 274 //
275 // To change this behavior, we introduce a set of argument wrappers 275 // To change this behavior, we introduce a set of argument wrappers
276 // (e.g., Unretained(), and ConstRef()). These are simple container templates 276 // (e.g., Unretained(), and ConstRef()). These are simple container templates
277 // that are passed by value, and wrap a pointer to argument. See the 277 // that are passed by value, and wrap a pointer to argument. See the
278 // file-level comment in base/bind_helpers.h for more info. 278 // file-level comment in base/bind_helpers.h for more info.
279 // 279 //
280 // These types are passed to the Unwrap() functions, and the MaybeRefcount() 280 // These types are passed to the Unwrap() functions, and the MaybeRefcount()
281 // functions respectively to modify the behavior of Bind(). The Unwrap() 281 // functions respectively to modify the behavior of Bind(). The Unwrap()
282 // and MaybeRefcount() functions change behavior by doing partial 282 // and MaybeRefcount() functions change behavior by doing partial
283 // specialization based on whether or not a parameter is a wrapper type. 283 // specialization based on whether or not a parameter is a wrapper type.
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 }; 751 };
752 752
753 753
754 // Syntactic sugar to make Callbacks<void(void)> easier to declare since it 754 // Syntactic sugar to make Callbacks<void(void)> easier to declare since it
755 // will be used in a lot of APIs with delayed execution. 755 // will be used in a lot of APIs with delayed execution.
756 typedef Callback<void(void)> Closure; 756 typedef Callback<void(void)> Closure;
757 757
758 } // namespace base 758 } // namespace base
759 759
760 #endif // BASE_CALLBACK_H 760 #endif // BASE_CALLBACK_H
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698