diff options
author | Renato Botelho <renato@netgate.com> | 2016-11-02 10:47:11 -0200 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-11-02 10:47:11 -0200 |
commit | 3c84ef4df7f599fdf9db66521c3d33c167458687 (patch) | |
tree | 95795d4a6304e89128b277db8769df4a7d074fa4 /contrib/libc++/include/functional | |
parent | eb2387fb3f25275b8ca223e3c464563294982bde (diff) | |
parent | 3944e88fda9dc9f4f391a06b18cd7583f783e8ec (diff) | |
download | FreeBSD-src-3c84ef4df7f599fdf9db66521c3d33c167458687.zip FreeBSD-src-3c84ef4df7f599fdf9db66521c3d33c167458687.tar.gz |
Merge remote-tracking branch 'origin/stable/10' into devel
Diffstat (limited to 'contrib/libc++/include/functional')
-rw-r--r-- | contrib/libc++/include/functional | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/libc++/include/functional b/contrib/libc++/include/functional index d14b46b..36d422c 100644 --- a/contrib/libc++/include/functional +++ b/contrib/libc++/include/functional @@ -1367,7 +1367,8 @@ template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> _Rp __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg) { - return __invoke(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...); + typedef __invoke_void_return_wrapper<_Rp> _Invoker; + return _Invoker::__call(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...); } #ifndef _LIBCPP_NO_RTTI @@ -1429,7 +1430,7 @@ class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_ArgTypes...)> template <class _Fp> struct __callable<_Fp, true> { - static const bool value = + static const bool value = is_same<void, _Rp>::value || is_convertible<typename __invoke_of<_Fp&, _ArgTypes...>::type, _Rp>::value; }; |