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