summaryrefslogtreecommitdiffstats
path: root/libcxx/include/__functional_base
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/__functional_base')
-rw-r--r--libcxx/include/__functional_base20
1 files changed, 20 insertions, 0 deletions
diff --git a/libcxx/include/__functional_base b/libcxx/include/__functional_base
index 6766793d7c8..e174e0ca003 100644
--- a/libcxx/include/__functional_base
+++ b/libcxx/include/__functional_base
@@ -419,6 +419,26 @@ struct __invoke_return
typedef decltype(__invoke(_VSTD::declval<_Tp>(), _VSTD::declval<_Args>()...)) type;
};
+template <class _Ret>
+struct __invoke_void_return_wrapper
+{
+ template <class ..._Args>
+ static _Ret __call(_Args&&... __args)
+ {
+ return __invoke(_VSTD::forward<_Args>(__args)...);
+ }
+};
+
+template <>
+struct __invoke_void_return_wrapper<void>
+{
+ template <class ..._Args>
+ static void __call(_Args&&... __args)
+ {
+ __invoke(_VSTD::forward<_Args>(__args)...);
+ }
+};
+
template <class _Tp>
class _LIBCPP_TYPE_VIS_ONLY reference_wrapper
: public __weak_result_type<_Tp>
OpenPOWER on IntegriCloud