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

Synopsis of methods

constexpr view< split_fnsplit {}
 

Public Types

template<typename Rng >
using ElementConcept = meta::and_< ForwardRange< Rng >, Regular< range_value_type_t< Rng > >>
 
template<typename Rng , typename Fun >
using FunctionConcept = meta::and_< ForwardRange< Rng >, Invocable< Fun &, iterator_t< Rng >, sentinel_t< Rng > >, CopyConstructible< Fun >, ConvertibleTo< result_of_t< Fun &(iterator_t< Rng >, sentinel_t< Rng >)>, std::pair< bool, iterator_t< Rng > >> >
 
template<typename Rng , typename Fun >
using PredicateConcept = meta::and_< ForwardRange< Rng >, Predicate< Fun const &, range_reference_t< Rng > >, CopyConstructible< Fun > >
 
template<typename Rng , typename Sub >
using SubRangeConcept = meta::and_< ForwardRange< Rng >, ForwardRange< Sub >, EqualityComparable< range_value_type_t< Rng >, range_value_type_t< Sub > >>
 

Public Member Functions

template<typename Rng , typename Fun , requires = (FunctionConcept<Rng, Fun>())>
split_view< all_t< Rng >, Fun > operator() (Rng &&rng, Fun fun) const
 
template<typename Rng , typename Fun , requires = (PredicateConcept<Rng, Fun>())>
split_view< all_t< Rng >, predicate_pred< Rng, Fun > > operator() (Rng &&rng, Fun fun) const
 
template<typename Rng , requires = (ElementConcept<Rng>())>
split_view< all_t< Rng >, element_pred< Rng > > operator() (Rng &&rng, range_value_type_t< Rng > val) const
 
template<typename Rng , typename Sub , requires = (SubRangeConcept<Rng, Sub>())>
split_view< all_t< Rng >, subrange_pred< Rng, Sub > > operator() (Rng &&rng, Sub &&sub) const