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

Side by Side Diff: base/callback.h.pump

Issue 7780016: Make Callback.Equals() only work when comparing against the same type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add missing file. Created 9 years, 3 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/callback.h ('k') | base/callback_internal.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 $$ This is a pump file for generating file templates. Pump is a python 1 $$ This is a pump file for generating file templates. Pump is a python
2 $$ script that is part of the Google Test suite of utilities. Description 2 $$ script that is part of the Google Test suite of utilities. Description
3 $$ can be found here: 3 $$ can be found here:
4 $$ 4 $$
5 $$ http://code.google.com/p/googletest/wiki/PumpManual 5 $$ http://code.google.com/p/googletest/wiki/PumpManual
6 $$ 6 $$
7 7
8 $var MAX_ARITY = 6 8 $var MAX_ARITY = 6
9 9
10 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 10 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 template <typename T> 267 template <typename T>
268 Callback(const internal::InvokerStorageHolder<T>& invoker_holder) 268 Callback(const internal::InvokerStorageHolder<T>& invoker_holder)
269 : CallbackBase( 269 : CallbackBase(
270 reinterpret_cast<InvokeFuncStorage>(&T::Invoker::DoInvoke), 270 reinterpret_cast<InvokeFuncStorage>(&T::Invoker::DoInvoke),
271 &invoker_holder.invoker_storage_) { 271 &invoker_holder.invoker_storage_) {
272 COMPILE_ASSERT((is_same<PolymorphicInvoke, 272 COMPILE_ASSERT((is_same<PolymorphicInvoke,
273 typename T::Invoker::DoInvokeType>::value), 273 typename T::Invoker::DoInvokeType>::value),
274 callback_type_does_not_match_bind_result); 274 callback_type_does_not_match_bind_result);
275 } 275 }
276 276
277 bool Equals(const Callback& other) const {
278 return CallbackBase::Equals(other);
279 }
280
277 R Run($for ARG , 281 R Run($for ARG ,
278 [[typename internal::ParamTraits<A$(ARG)>::ForwardType a$(ARG)]]) const { 282 [[typename internal::ParamTraits<A$(ARG)>::ForwardType a$(ARG)]]) const {
279 PolymorphicInvoke f = 283 PolymorphicInvoke f =
280 reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_); 284 reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
281 285
282 return f(invoker_storage_.get()[[]] 286 return f(invoker_storage_.get()[[]]
283 $if ARITY != 0 [[, ]] 287 $if ARITY != 0 [[, ]]
284 $for ARG , 288 $for ARG ,
285 [[a$(ARG)]]); 289 [[a$(ARG)]]);
286 } 290 }
287 }; 291 };
288 292
289 293
290 ]] $$ for ARITY 294 ]] $$ for ARITY
291 295
292 // Syntactic sugar to make Callbacks<void(void)> easier to declare since it 296 // Syntactic sugar to make Callbacks<void(void)> easier to declare since it
293 // will be used in a lot of APIs with delayed execution. 297 // will be used in a lot of APIs with delayed execution.
294 typedef Callback<void(void)> Closure; 298 typedef Callback<void(void)> Closure;
295 299
296 } // namespace base 300 } // namespace base
297 301
298 #endif // BASE_CALLBACK_H 302 #endif // BASE_CALLBACK_H
OLDNEW
« no previous file with comments | « base/callback.h ('k') | base/callback_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698