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>>>);}