hpx/functional/move_only_function.hpp

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

Defines

HPX_UTIL_REGISTER_UNIQUE_FUNCTION_DECLARATION(Sig, F, Name)
HPX_UTIL_REGISTER_UNIQUE_FUNCTION(Sig, F, Name)
namespace hpx
template<typename R, typename ...Ts, bool Serializable>
class move_only_function<R(Ts...), Serializable> : public util::detail::basic_function<R(Ts...), false, Serializable>

Public Types

template<>
using result_type = R

Public Functions

constexpr move_only_function(std::nullptr_t = nullptr)
move_only_function(move_only_function const&)
move_only_function(move_only_function&&)
move_only_function &operator=(move_only_function const&)
move_only_function &operator=(move_only_function&&)
template<typename F, typename FD = std::decay_t<F>, typename Enable1 = std::enable_if_t<!std::is_same_v<FD, move_only_function>>, typename Enable2 = std::enable_if_t<is_invocable_r_v<R, FD&, Ts...>>>
move_only_function(F &&f)
template<typename F, typename FD = std::decay_t<F>, typename Enable1 = std::enable_if_t<!std::is_same_v<FD, move_only_function>>, typename Enable2 = std::enable_if_t<is_invocable_r_v<R, FD&, Ts...>>>
move_only_function &operator=(F &&f)

Private Types

template<>
using base_type = util::detail::basic_function<R(Ts...), false, Serializable>
namespace distributed

Typedefs

template<typename Sig>
using move_only_function = hpx::move_only_function<Sig, true>