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