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

llvm-svn: 131409
This commit is contained in:
Howard Hinnant 2011-05-16 16:20:21 +00:00
parent 07de7bcaa0
commit 23fdcd70c6
1 changed files with 8 additions and 0 deletions

View File

@ -430,6 +430,14 @@ __invoke(_R _T::* __f, _T1&& __t1)
// 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>
inline _LIBCPP_INLINE_VISIBILITY
typename result_of<_F(_T...)>::type