header_utils
Loading...
Searching...
No Matches
ghassanpl::op Namespace Reference

Contains functions that return functors that perform an operation without output; appropriate for functions like std::for_each. More...

Functions

template<typename T>
constexpr auto push_back_to (T &to) noexcept
template<typename T>
constexpr auto emplace_back_to (T &to) noexcept
template<typename T>
constexpr auto push_front_to (T &to) noexcept
template<typename T>
constexpr auto emplace_front_to (T &to) noexcept
template<typename T>
constexpr auto append_to (T &to) noexcept
template<typename T>
constexpr auto insert_to (T &to) noexcept
template<typename T, GHPL_TYPENAME(std::output_iterator< T >) IT>
constexpr auto output_to (IT &&to)
template<typename T>
constexpr auto assign_to (T &to) noexcept
template<typename T>
constexpr auto add_to (T &to) noexcept
template<typename T>
constexpr auto stream_to (T &to) noexcept
template<typename T>
constexpr auto stream_from (T &from) noexcept
template<typename... FUNCS>
constexpr auto call_all (FUNCS &&... funcs)
 For funcs a, b, c, calls them as return (a(args...), b(args...), c(args...)).
template<typename F>
constexpr auto call_composed (F &&f)
 forwarding F can throw
template<typename F, typename ... Fs>
constexpr auto call_composed (F &&f, Fs &&... fs)
 For funcs a, b, c, calls them as return a(b(c(args...))).
template<typename F>
constexpr auto call_piped (F &&f)
 forwarding F can throw
template<typename F, typename ... Fs>
constexpr auto call_piped (F &&f, Fs &&... fs)
 For funcs a, b, c, calls them as return c(b(a(args...))); or return a(args...) |> b |> c;.
template<typename THEN, typename IF>
constexpr auto call_when (THEN &&op, IF &&predicate)
 Acts as if (predicate(args...)) op(args...);.
template<typename THEN, typename IF, typename ELSE_VAL>
constexpr auto call_when (THEN &&op, IF &&predicate, ELSE_VAL &&elseval)
 Acts as if (predicate(args...)) op(args...);.
template<typename THEN, typename IF, typename ELSE>
constexpr auto call_when_else (THEN &&op, IF &&predicate, ELSE &&elseop)
 Acts as if (predicate(args...)) return op(args...); else return elseop(args...);.

Detailed Description

Contains functions that return functors that perform an operation without output; appropriate for functions like std::for_each.

Function Documentation

◆ add_to()

template<typename T>
auto ghassanpl::op::add_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 161 of file functional.h.

◆ append_to()

template<typename T>
auto ghassanpl::op::append_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 154 of file functional.h.

◆ assign_to()

template<typename T>
auto ghassanpl::op::assign_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 160 of file functional.h.

◆ call_all()

template<typename... FUNCS>
auto ghassanpl::op::call_all ( FUNCS &&... funcs)
nodiscardconstexpr

For funcs a, b, c, calls them as return (a(args...), b(args...), c(args...)).

Returns
return value of last call forwarding FUNCS can throw

Definition at line 168 of file functional.h.

◆ call_composed() [1/2]

template<typename F>
auto ghassanpl::op::call_composed ( F && f)
nodiscardconstexpr

forwarding F can throw

Definition at line 178 of file functional.h.

◆ call_composed() [2/2]

template<typename F, typename ... Fs>
auto ghassanpl::op::call_composed ( F && f,
Fs &&... fs )
nodiscardconstexpr

For funcs a, b, c, calls them as return a(b(c(args...))).

forwarding F or Fs can throw

Definition at line 185 of file functional.h.

◆ call_piped() [1/2]

template<typename F>
auto ghassanpl::op::call_piped ( F && f)
nodiscardconstexpr

forwarding F can throw

Definition at line 193 of file functional.h.

◆ call_piped() [2/2]

template<typename F, typename ... Fs>
auto ghassanpl::op::call_piped ( F && f,
Fs &&... fs )
nodiscardconstexpr

For funcs a, b, c, calls them as return c(b(a(args...))); or return a(args...) |> b |> c;.

forwarding F or Fs can throw

Definition at line 200 of file functional.h.

◆ call_when() [1/2]

template<typename THEN, typename IF>
auto ghassanpl::op::call_when ( THEN && op,
IF && predicate )
nodiscardconstexpr

Acts as if (predicate(args...)) op(args...);.

Definition at line 209 of file functional.h.

◆ call_when() [2/2]

template<typename THEN, typename IF, typename ELSE_VAL>
auto ghassanpl::op::call_when ( THEN && op,
IF && predicate,
ELSE_VAL && elseval )
nodiscardconstexpr

Acts as if (predicate(args...)) op(args...);.

Definition at line 219 of file functional.h.

◆ call_when_else()

template<typename THEN, typename IF, typename ELSE>
auto ghassanpl::op::call_when_else ( THEN && op,
IF && predicate,
ELSE && elseop )
nodiscardconstexpr

Acts as if (predicate(args...)) return op(args...); else return elseop(args...);.

Definition at line 235 of file functional.h.

◆ emplace_back_to()

template<typename T>
auto ghassanpl::op::emplace_back_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 151 of file functional.h.

◆ emplace_front_to()

template<typename T>
auto ghassanpl::op::emplace_front_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 153 of file functional.h.

◆ insert_to()

template<typename T>
auto ghassanpl::op::insert_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 155 of file functional.h.

◆ output_to()

template<typename T, GHPL_TYPENAME(std::output_iterator< T >) IT>
auto ghassanpl::op::output_to ( IT && to)
nodiscardconstexpr

Definition at line 158 of file functional.h.

◆ push_back_to()

template<typename T>
auto ghassanpl::op::push_back_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 150 of file functional.h.

◆ push_front_to()

template<typename T>
auto ghassanpl::op::push_front_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 152 of file functional.h.

◆ stream_from()

template<typename T>
auto ghassanpl::op::stream_from ( T & from)
nodiscardconstexprnoexcept

Definition at line 163 of file functional.h.

◆ stream_to()

template<typename T>
auto ghassanpl::op::stream_to ( T & to)
nodiscardconstexprnoexcept

Definition at line 162 of file functional.h.