std::experi...ranges::View(3)
std::experimental::ranges::View(3)
okay bestie, this is the std::experimental::ranges::View(3) page from the C++ Standard Libary manual โ yes, thatโs the manual name, and weโre folding it in right here instead of copying the whole header line ๐
โจ
๐ธ NAME
std::experimental::ranges::View โ std::experimental::ranges::View. Thatโs it, thatโs the name โ periodt ๐ซถ
โจ Synopsis
Hereโs the synopsis, preserved with all its ranges TS energy:
Defined in header <experimental/ranges/range>
template< class T >
concept bool View = Range<T> && Semiregular<T> && /* view-predicate<T> (ranges TS)
*/;
template< class T >
(ranges TS)
struct enable_view {};
struct view_base {};
(ranges TS)
The concept View<T> says the semiregular range T has constant-time copy, move, and assignment operations. Literally iconic for a range type ๐
Now the /* view-predicate<T> */ part of the concept is determined like this, in order:
- if the qualified-id
ranges::enable_view<T>::typeis valid and denotes a type, then itโsranges::enable_view<T>::type::value; - otherwise, if
std::is_base_of_v<ranges::view_base, T>istrue, thentrue; - otherwise, if
Tis a specialization ofstd::initializer_list,std::set,std::multiset,std::unordered_set, orstd::unordered_multiset, thenfalse; - otherwise, if both
Tandconst TsatisfyRangeandranges::reference_t<ranges::iterator_t<T>>is not the same type asranges::reference_t<ranges::iterator_t<const T>>, thenfalse; - otherwise,
true.
no extra rules, no sneaky guesses โ thatโs the whole vibe check list, bestie ๐
mwah ๐ this page came from http://cppreference.com, dated 2024.06.10, and itโs the std::experi...ranges::View(3) manual โ bye bestie ๐ซถ
๐ฆ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms