mpc
Haskell-like feature supports in C++
mpc::partial< Op, Bound > Struct Template Reference

Implements a perfect-forwarding call wrapper. More...

Public Member Functions

template<class... BoundArgs, class = std::enable_if_t<std::is_constructible_v<std::tuple<Bound...>, BoundArgs&&...>>>
constexpr partial (Op const &op, BoundArgs &&... bound)
 
template<class... BoundArgs, class = std::enable_if_t<std::is_constructible_v<std::tuple<Bound...>, BoundArgs&&...>>>
constexpr partial (Op &&op, BoundArgs &&... bound)
 
 partial (partial const &)=default
 
 partial (partial &&)=default
 
partialoperator= (partial const &)=default
 
partialoperator= (partial &&)=default
 
template<class... Args>
constexpr auto operator() (Args &&... args) &noexcept(noexcept(__call(*op_, bound_, std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))) -> decltype(__call(*op_, bound_, std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))
 
template<class... Args>
constexpr auto operator() (Args &&... args) const &noexcept(noexcept(__call(*op_, bound_, std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))) -> decltype(__call(*op_, bound_, std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))
 
template<class... Args>
constexpr auto operator() (Args &&... args) &&noexcept(noexcept(__call(*std::move(op_), std::move(bound_), std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))) -> decltype(__call(*std::move(op_), std::move(bound_), std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))
 
template<class... Args>
constexpr auto operator() (Args &&... args) const &&noexcept(noexcept(__call(*std::move(op_), std::move(bound_), std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))) -> decltype(__call(*std::move(op_), std::move(bound_), std::index_sequence_for< Bound... >(), std::forward< Args >(args)...))
 
template<class Arg >
constexpr auto operator% (Arg &&arg) &noexcept(noexcept((*this)(std::forward< Arg >(arg)))) -> decltype((*this)(std::forward< Arg >(arg)))
 
template<class Arg >
constexpr auto operator% (Arg &&arg) const &noexcept(noexcept((*this)(std::forward< Arg >(arg)))) -> decltype((*this)(std::forward< Arg >(arg)))
 
template<class Arg >
constexpr auto operator% (Arg &&arg) &&noexcept(noexcept(std::move(*this)(std::forward< Arg >(arg)))) -> decltype(std::move(*this)(std::forward< Arg >(arg)))
 
template<class Arg >
constexpr auto operator% (Arg &&arg) const &&noexcept(noexcept(std::move(*this)(std::forward< Arg >(arg)))) -> decltype(std::move(*this)(std::forward< Arg >(arg)))
 

Friends

template<class Op2 , class... Args, class >
constexpr friend auto make_partial (Op2 &&, Args &&...)
 

Detailed Description

template<copy_constructible_object Op, class... Bound>
struct mpc::partial< Op, Bound >

Implements a perfect-forwarding call wrapper.


The documentation for this struct was generated from the following file: