Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.
llvm-svn: 131409
diff --git a/libcxx/include/__functional_base b/libcxx/include/__functional_base
index af9e623..22ac947 100644
--- a/libcxx/include/__functional_base
+++ b/libcxx/include/__functional_base
@@ -430,6 +430,14 @@
// 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