std::experimental::ranges::View
Von cppreference.com
< cpp | experimental | ranges
| Definiert in Header <experimental/ranges/range> |
||
| template< class T > concept bool View = Range<T> && Semiregular<T> && /* view-predicate<T> */; |
(Ranges TS) | |
| template< class T > struct enable_view {}; |
(Ranges TS) | |
| struct view_base {}; |
(Ranges TS) | |
Das Konzept View<T> gibt an, dass der semireguläre Bereich T konstante Zeit für Kopier-, Verschiebe- und Zuweisungsoperationen hat.
Der /* view-predicate<T> */-Teil des Konzepts wird wie folgt bestimmt
- wenn das qualified-id ranges::enable_view<T>::type gültig ist und einen Typ bezeichnet, ranges::enable_view<T>::type::value;
- andernfalls, wenn std::is_base_of_v<ranges::view_base, T> true ist, true;
- andernfalls, wenn
Teine Spezialisierung von std::initializer_list, std::set, std::multiset, std::unordered_set oder std::unordered_multiset ist, false; - andernfalls, wenn sowohl
Tals auchconst TRangeerfüllen und ranges::reference_t <ranges::iterator_t<T>> nicht denselben Typ hat wie ranges::reference_t<ranges::iterator_t<const T>>, false; - andernfalls true.