Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@131409 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant 2011-05-16 16:20:21 +00:00
parent 496934a803
commit 941138f8c9

View File

@ -430,6 +430,14 @@ __invoke(_R _T::* __f, _T1&& __t1)
// fifth bullet // fifth bullet
template <class _R, class ..._Param, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
_R
__invoke(_R (*__f)(_Param...), _Args&& ...__args)
{
return __f(_STD::forward<_Args>(__args)...);
}
template <class _F, class ..._T> template <class _F, class ..._T>
inline _LIBCPP_INLINE_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY
typename result_of<_F(_T...)>::type typename result_of<_F(_T...)>::type