Range-v3 Range algorithms, views, and actions for the Standard Library |

Synopsis of methods | Public Types | Public Member Functions | List of all members
ranges::actions::split_when_fn Struct Reference

## Synopsis of methods
constexpr split_when_fn | split_when {}

## 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 >
std::vector< split_value_t< Rng > > | operator() (Rng &&rng, Fun fun) const
template<typename Rng , typename Fun >
std::vector< split_value_t< Rng > > | operator() (Rng &&rng, Fun fun) const

## Member Function Documentation

## ◆ operator()() [1/2]

template<typename Rng , typename Fun >

std::vector<split_value_t<Rng> > ranges::actions::split_when_fn::operator() | ( | Rng && | rng,
|  | Fun | fun
| ) |  | const

Precondition
  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>>>`

## ◆ operator()() [2/2]

template<typename Rng , typename Fun >

std::vector<split_value_t<Rng> > ranges::actions::split_when_fn::operator() | ( | Rng && | rng,
|  | Fun | fun
| ) |  | const

Precondition
  requires `forward_range<Rng> && predicate<Fun const &, range_reference_t<Rng>> && copy_constructible<Fun>`