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

Synopsis of methods

constexpr split_fn split {}
 

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 >
std::vector< split_value_t< Rng > > operator() (Rng &&rng, Pattern &&pattern) const
 
template<typename Rng >
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 >
constexpr auto operator() (T &t) const
 

Member Function Documentation

◆ operator()() [1/3]

template<typename Rng , typename Pattern >
std::vector<split_value_t<Rng> > ranges::actions::split_fn::operator() ( Rng &&  rng,
Pattern &&  pattern 
) const
Precondition
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>) //

References ranges::aux::move.

◆ operator()() [2/3]

template<typename Rng >
std::vector<split_value_t<Rng> > ranges::actions::split_fn::operator() ( Rng &&  rng,
range_value_t< Rng >  val 
) const
Precondition
requires input_range<Rng> && indirectly_comparable< iterator_t<Rng>, range_value_t<Rng> const *, ranges::equal_to>

◆ operator()() [3/3]

template<typename T >
constexpr auto ranges::actions::split_fn::operator() ( T &  t) const
constexpr
Precondition
requires range<T &>