diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2013-05-07 23:40:12 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2013-05-07 23:40:12 +0000 |
| commit | 866ed94db1b9ca8ec0cb2e21be845daddac64660 (patch) | |
| tree | 6e40cfeeaa193e93d4013fcaaf27712ddf1ee7d2 /libcxx/include/__functional_base | |
| parent | 861b5b5aed6b45d322d9cb0a730667800e8351e4 (diff) | |
| download | bcm5719-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_base | 12 |
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) |

