std::ranges::split_view
| ||||||||||||||||||||||
| Range primitives | |||||||
| |||||||
| Range concepts | |||||||||||||||||||
| |||||||||||||||||||
| Range factories | |||||||||
| |||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper items | |||||||||||||||||
| |||||||||||||||||
template<class R,class P> split_view( R&&, P&&) | (1) | (since C++20) |
template<ranges::input_range R> split_view( R&&,ranges::range_value_t<R>) | (2) | (since C++20) |
Thesededuction guides are provided forsplit_view to allow deduction from a range and a delimiter.
#include <ranges>#include <string_view>#include <type_traits>using std::operator""sv; int main(){ std::ranges::split_view w1{"a::b::c"sv,"::"sv}; static_assert(std::is_same_v< decltype(w1), std::ranges::split_view<std::string_view,std::string_view>>); std::ranges::split_view w2{"x,y,z"sv,','}; static_assert(std::is_same_v< decltype(w2), std::ranges::split_view<std::string_view, std::ranges::single_view<char>>>);}