|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Helper items | |||||||||||||||||
|
Member functions | ||||
enumerate_view::size | ||||
(C++26) | ||||
Deduction guides | ||||
Nested classes | ||||
Iterator | ||||
Sentinel | ||||
constexprauto size() requiresranges::sized_range<V>; | (1) | (since C++23) |
constexprauto size()const requiresranges::sized_range<const V>; | (2) | (since C++23) |
Returns the number of elements. Equivalent toreturnranges::size(base_);, wherebase_
is the underlying view.
Contents |
(none)
The number of elements.
#include <cassert>#include <forward_list>#include <ranges>#include <string_view> int main(){constexprstaticauto v1={1,2,3,4,5};constexprauto ev1{v1| std::views::enumerate}; static_assert(ev1.size()==5); static_assert(std::ranges::sized_range<decltype(v1)>); auto v2=std::forward_list{1,2,3,4,5};auto ev2{v2| std::views::enumerate}; static_assert(not std::ranges::sized_range<decltype(v2)>);// auto size = ev2.size(); // Error: v2 is not a sized rangeassert(std::ranges::distance(v2)==5);// OK, distance does not require sized// range, but has O(N) complexity here}
(C++20) | returns an integer equal to the size of a range (customization point object)[edit] |
(C++20) | returns a signed integer equal to the size of a range (customization point object)[edit] |