- ranges[meta header]
- std::ranges[meta namespace]
- as_const_view[meta class]
- function[meta id-type]
- cpp23[meta cpp]
constexpr auto size() requires sized_range<V>; // (1)
constexpr auto size() const requires sized_range<const V>; // (2)
- sized_range[link /reference/ranges/sized_range.md]
view
の要素数を取得する。
この関数で得られるas_const_view
の要素数は、元のRange(V
)の要素数と一致する。
入力view
(V
)のオブジェクトをbase_
というメンバに保持するとして、(1)(2)どちらも
return ranges::size(base_);
- size[link /reference/ranges/size.md]
#include <ranges>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::ranges::as_const_view acv{vec};
std::cout << acv.size() << '\n';
std::cout << vec.size() << '\n';
}
- size[color ff0000]
5
5
- C++23
- Clang: ??
- GCC: 13.1 [mark verified]
- Visual C++: 2022 Update 6 [mark verified]