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_t< Rng >>>
 
template<typename Rng , typename Fun >
using FunctionConcept = meta::and_< ForwardRange< Rng >, Function< Fun, range_iterator_t< Rng >, range_sentinel_t< Rng >>, ConvertibleTo< concepts::Function::result_t< Fun, range_iterator_t< Rng >, range_sentinel_t< Rng >>, std::pair< bool, range_iterator_t< Rng >>>>
 
template<typename Rng , typename Fun >
using PredicateConcept = meta::and_< ForwardRange< Rng >, Predicate< Fun, range_reference_t< Rng >>>
 
template<typename Rng , typename Sub >
using SubRangeConcept = meta::and_< ForwardRange< Rng >, ForwardRange< Sub >, EqualityComparable< range_value_t< Rng >, range_value_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_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