Range-v3
Range algorithms, views, and actions for the Standard Library
fold_right.hpp File Reference

Classes

struct  ranges::detail::flipped< F >
 

Functions

template<typename R , typename Op >
 ranges::CPP_TEMPLATE_AUX_0 (requires bidirectional_range< R > &&indirectly_binary_right_foldable< Op, range_value_t< R >, iterator_t< R >> &&constructible_from< range_value_t< R >, range_reference_t< R >>) const expr auto fold_right_last(R &&rng
 
template<typename Rng , typename T , typename Op >
 ranges::CPP_TEMPLATE_AUX_0 (requires bidirectional_range< Rng > &&indirectly_binary_right_foldable< Op, T, iterator_t< Rng >>) const expr auto fold_right(Rng &&rng
 
template<typename I , typename S , typename Op >
 ranges::CPP_TEMPLATE_AUX_0 (requires sentinel_for< S, I > &&bidirectional_iterator< I > &&indirectly_binary_right_foldable< Op, iter_value_t< I >, I > &&constructible_from< iter_value_t< I >, iter_reference_t< I >>) const expr auto fold_right_last(I first
 
template<typename I , typename S , typename T , typename Op >
 ranges::CPP_TEMPLATE_AUX_0 (requires sentinel_for< S, I > &&bidirectional_iterator< I > &&indirectly_binary_right_foldable< Op, T, I >) const expr auto fold_right(I first
 
 ranges::if (first==last)
 
return ranges::optional< U > (in_place, fold_right_fn{}(std::move(first), tail, iter_value_t< I >(*tail), std::move(op)))
 
 ranges::while (first !=tail)
 

Variables

template<class F , class T , class I >
concept ranges::iindirectly_binary_right_foldable
 \concept indirectly_binary_right_foldable More...
 
ranges::tail = next(first, last)
 

Variable Documentation

◆ iindirectly_binary_right_foldable

template<class F , class T , class I >
concept ranges::iindirectly_binary_right_foldable
Initial value:
=
indirectly_binary_left_foldable<detail::flipped<F>, T, I>
CPP_TEMPLATE_AUX_0 I(requires bidirectional_iterator< I > &&sortable< I, C, P >) III inplace_merge(I first
function template inplace_merge

\concept indirectly_binary_right_foldable

The indirectly_binary_right_foldable concept