1.1 KiB
1.1 KiB
[range.elementsof]
25 Ranges library [ranges]
25.5 Range utilities [range.utility]
25.5.6 Class template elements_of [range.elementsof]
Specializations of elements_of encapsulate a range and act as a tag in overload sets to disambiguate when a range should be treated as a sequence rather than a single value.
[Example 1: template generator f(ranges::input_range auto&& r) {if constexpr (YieldElements)co_yield ranges::elements_of(r); // yield each element of relseco_yield r; // yield r as a single value} â end example]
namespace std::ranges {template<range R, class Allocator = allocator>struct elements_of {no_unique_address R range; no_unique_address Allocator allocator = Allocator(); }; template<class R, class Allocator = allocator> elements_of(R&&, Allocator = Allocator()) -> elements_of<R&&, Allocator>;}