3#ifndef pRC_CORE_VALUE_FUNCTIONS_FOLD_H
4#define pRC_CORE_VALUE_FUNCTIONS_FOLD_H
11 template<
class F, Bool E = false, Direction D = Direction::Forwards>
78 static inline constexpr auto fold(
XA &&a,
XB &&b)
121 class XA,
class XB,
class...
Xs,
132 auto const c = [&a, &b]()
148 auto const c = [&b, &
args...]()
Definition cholesky.hpp:18
static constexpr X eval(X &&a)
Definition eval.hpp:11
bool Bool
Definition type_traits.hpp:18
std::invoke_result_t< F, Args... > ResultOf
Definition type_traits.hpp:140
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
std::is_invocable< F, Args... > IsInvocable
Definition type_traits.hpp:134
static constexpr Conditional< IsSatisfied< E >, decltype(eval(declval< XA >())), XA > fold(XA &&a)
Repeatedly applies an operation to generate one pRC object out of many.
Definition fold.hpp:40
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13
Direction
Definition direction.hpp:9
std::conditional_t< B{}, T, F > Conditional
Definition type_traits.hpp:131