hpx/functional/invoke.hpp#

See Public API for a list of names and headers that are part of the public HPX API.

Defines

HPX_INVOKE_R(R, F, ...)#
namespace hpx
namespace util

Functions

template<typename F, typename ...Ts>
constexpr util::invoke_result<F, Ts...>::type invoke(F &&f, Ts&&... vs) noexcept(noexcept(HPX_INVOKE(HPX_FORWARD(F, f), HPX_FORWARD(Ts, vs)...)))#

Invokes the given callable object f with the content of the argument pack vs

Note

This function is similar to std::invoke (C++17)

Parameters
  • f – Requires to be a callable object. If f is a member function pointer, the first argument in the pack will be treated as the callee (this object).

  • vs – An arbitrary pack of arguments

Throws

std::exception – like objects thrown by call to object f with the argument types vs.

Returns

The result of the callable object when it’s called with the given argument types.

template<typename R, typename F, typename ...Ts>
constexpr R invoke_r(F &&f, Ts&&... vs) noexcept(noexcept(HPX_INVOKE(HPX_FORWARD(F, f), HPX_FORWARD(Ts, vs)...)))#
Template Parameters

R – The result type of the function when it’s called with the content of the given argument types vs.

namespace functional#
struct invoke#

Public Functions

template<typename F, typename ...Ts>
inline constexpr util::invoke_result<F, Ts...>::type operator()(F &&f, Ts&&... vs) const noexcept(noexcept(HPX_INVOKE(HPX_FORWARD(F, f), HPX_FORWARD(Ts, vs)...)))#
template<typename R>
struct invoke_r#

Public Functions

template<typename F, typename ...Ts>
inline constexpr R operator()(F &&f, Ts&&... vs) const noexcept(noexcept(HPX_INVOKE(HPX_FORWARD(F, f), HPX_FORWARD(Ts, vs)...)))#