10 template<
typename P,
typename F>
13 template<
typename Pn,
typename Fn>
14 constexpr explicit ProjImpl(Pn&& p, Fn&& f) : m_proj(
di::forward<Pn>(p)), m_f(
di::forward<Fn>(f)) {}
22 template<
typename... Args>
24 constexpr auto operator()(Args&&... args) & ->
decltype(
auto) {
25 return invoke(m_f,
invoke(m_proj, di::forward<Args>(args))...);
28 template<
typename... Args>
30 constexpr auto operator()(Args&&... args)
const& ->
decltype(
auto) {
31 return invoke(m_f,
invoke(m_proj, di::forward<Args>(args))...);
34 template<
typename... Args>
36 constexpr auto operator()(Args&&... args) && ->
decltype(
auto) {
37 return invoke(di::move(m_f),
invoke(m_proj, di::forward<Args>(args))...);
40 template<
typename... Args>
42 constexpr auto operator()(Args&&... args)
const&& ->
decltype(
auto) {
43 return invoke(di::move(m_f),
invoke(m_proj, di::forward<Args>(args))...);
52 template<concepts::DecayConstructible P, concepts::DecayConstructible F>
constexpr ProjImpl(Pn &&p, Fn &&f)
Definition proj.h:14
constexpr auto operator=(ProjImpl &&) -> ProjImpl &=delete
constexpr ProjImpl(ProjImpl const &)=default
constexpr ProjImpl(ProjImpl &&)=default
constexpr auto operator=(ProjImpl const &) -> ProjImpl &=delete
constexpr auto invoke
Definition invoke.h:100
constexpr auto proj
Definition proj.h:59
Definition zstring_parser.h:9
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
constexpr auto curry
Definition curry.h:140
constexpr auto operator()(P &&predicate, F &&function) const
Definition proj.h:53