Ableitungsrichtlinien für std::ranges::split_view
Von de.cppreference.net
template< class R, class P >
split_view( R&&, P&& )
-> split_view<views::all_t<R>, views::all_t<P>>;
|
(1) | (seit C++20) |
template< ranges::input_range R >
split_view( R&&, ranges::range_value_t<R> )
-> split_view<views::all_t<R>, ranges::single_view<ranges::range_value_t<R>>>;
|
(2) | (seit C++20) |
Diese Ableitungsrichtlinien werden für split_view bereitgestellt, um eine Ableitung von einem Bereich und einem Trennzeichen zu ermöglichen.
1) Das Trennzeichen ist ein Bereich von Elementen.
2) Das Trennzeichen ist ein einzelnes Element.
Beispiel
Diesen Code ausführen
#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>>>); }