Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::actions::split_when_fn Struct Reference

Public Types

template<typename Rng >
using split_value_t = meta::if_c<(bool) ranges::container< Rng >, uncvref_t< Rng >, std::vector< range_value_t< Rng > > >
 

Public Member Functions

template<typename Fun >
constexpr auto operator() (Fun fun) const
 
template<typename Rng , typename Fun >
requires forward_range<Rng> && invocable<Fun &, iterator_t<Rng>, sentinel_t<Rng>> && invocable<Fun &, iterator_t<Rng>, iterator_t<Rng>> && copy_constructible<Fun> && convertible_to<invoke_result_t<Fun &, iterator_t<Rng>, sentinel_t<Rng>>, std::pair<bool, iterator_t<Rng>>>
std::vector< split_value_t< Rng > > operator() (Rng &&rng, Fun fun) const
 
template<typename Rng , typename Fun >
requires forward_range<Rng> && predicate<Fun const &, range_reference_t<Rng>> && copy_constructible<Fun>
std::vector< split_value_t< Rng > > operator() (Rng &&rng, Fun fun) const
 

Related Functions

(Note that these are not member functions.)

constexpr split_when_fn split_when {}