Range-v3
Range algorithms, views, and actions for the Standard Library
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 >
auto operator() (Rng &&rng, Fun fun) const -> std::vector< split_value_t< Rng >> 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 >>>
 
template<typename Rng , typename Fun >
auto operator() (Rng &&rng, Fun fun) const -> std::vector< split_value_t< Rng >> requires forward_range< Rng > &&predicate< Fun const &, range_reference_t< Rng >> &&copy_constructible< Fun >