Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::actions::split_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 Rng , typename Pattern >
requires input_range<Rng> && viewable_range<Pattern> && forward_range<Pattern> && indirectly_comparable< iterator_t<Rng>, iterator_t<Pattern>, ranges::equal_to> && (forward_range<Rng> || detail::tiny_range<Pattern>)
std::vector< split_value_t< Rng > > operator() (Rng &&rng, Pattern &&pattern) const
 
template<typename Rng >
requires input_range<Rng> && indirectly_comparable< iterator_t<Rng>, range_value_t<Rng> const *, ranges::equal_to>
std::vector< split_value_t< Rng > > operator() (Rng &&rng, range_value_t< Rng > val) const
 
template<typename T >
constexpr auto operator() (T &&t) const
 
template<typename T >
requires range<T &>
constexpr auto operator() (T &t) const
 

Related Functions

(Note that these are not member functions.)

constexpr split_fn split {}