EricWF accepted this revision.

This revision is now accepted and ready to land.

LGTM. I don't think we need any changes in `__functional_03` because we don't 
provide bind in 03 :)


================
Comment at: include/__functional_03:2095
@@ -2095,1 +2094,3 @@
+            typedef __invoke_void_return_wrapper<_Rp> _Invoker;
+            return _Invoker::__call(static_cast<base&>(*this), 
_VSTD::forward<_Args>(__args)...);
         }
----------------
Small nit about the existing code: `base` is not a reserved identify and I 
don't know if it is safe to use.

================
Comment at: include/functional:2188
@@ -2187,2 +2187,3 @@
         <
             is_convertible<typename __bind_return<_Fd, _Td, tuple<_Args&&...> 
>::type,
+                           result_type>::value || is_void<_Rp>::value,
----------------
We could probably save a bunch of SFINAE here by using `__lazy_or` and putting 
the `is_void` check first. However I'm not sure that could hide errors caused 
by not evaluating `__bind_return`. Thoughts?


http://reviews.llvm.org/D10997




_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to