summaryrefslogtreecommitdiffstats
path: root/libcxx/include/__functional_base
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2013-05-07 23:40:12 +0000
committerHoward Hinnant <hhinnant@apple.com>2013-05-07 23:40:12 +0000
commit866ed94db1b9ca8ec0cb2e21be845daddac64660 (patch)
tree6e40cfeeaa193e93d4013fcaaf27712ddf1ee7d2 /libcxx/include/__functional_base
parent861b5b5aed6b45d322d9cb0a730667800e8351e4 (diff)
downloadbcm5719-llvm-866ed94db1b9ca8ec0cb2e21be845daddac64660.tar.gz
bcm5719-llvm-866ed94db1b9ca8ec0cb2e21be845daddac64660.zip
Constrain __invoke functions more accurately. This fixes http://llvm.org/bugs/show_bug.cgi?id=15861 .
llvm-svn: 181377
Diffstat (limited to 'libcxx/include/__functional_base')
-rw-r--r--libcxx/include/__functional_base12
1 files changed, 8 insertions, 4 deletions
diff --git a/libcxx/include/__functional_base b/libcxx/include/__functional_base
index 40a63a853d2..5b0d7201d6f 100644
--- a/libcxx/include/__functional_base
+++ b/libcxx/include/__functional_base
@@ -292,7 +292,8 @@ struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile>
// bullets 1 and 2
-template <class _Fp, class _A0, class ..._Args>
+template <class _Fp, class _A0, class ..._Args,
+ class>
inline _LIBCPP_INLINE_VISIBILITY
auto
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
@@ -301,7 +302,8 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
return (_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...);
}
-template <class _Fp, class _A0, class ..._Args>
+template <class _Fp, class _A0, class ..._Args,
+ class>
inline _LIBCPP_INLINE_VISIBILITY
auto
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
@@ -312,7 +314,8 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
// bullets 3 and 4
-template <class _Fp, class _A0>
+template <class _Fp, class _A0,
+ class>
inline _LIBCPP_INLINE_VISIBILITY
auto
__invoke(_Fp&& __f, _A0&& __a0)
@@ -321,7 +324,8 @@ __invoke(_Fp&& __f, _A0&& __a0)
return _VSTD::forward<_A0>(__a0).*__f;
}
-template <class _Fp, class _A0>
+template <class _Fp, class _A0,
+ class>
inline _LIBCPP_INLINE_VISIBILITY
auto
__invoke(_Fp&& __f, _A0&& __a0)
OpenPOWER on IntegriCloud