std::ranges::view_interface<D>::size
cppreference.net에서
constexpr auto size() requires ranges::forward_range<D> &&
std::sized_sentinel_for<ranges::sentinel_t<D>,
ranges::iterator_t<D>>;
|
(1) | (C++20부터) |
constexpr auto size() const requires ranges::forward_range<const D> &&
std::sized_sentinel_for<ranges::sentinel_t<const D>,
ranges::iterator_t<const D>>;
|
(2) | (C++20부터) |
size() 멤버 함수의 기본 구현은 센티널과 시작 반복자 간의 차이를 계산하여 범위의 크기를 구합니다.
반환값
1)
to-unsigned-like
(
ranges::
end
(
static_cast
<
D
&
>
(
this
)
)
-
ranges::
begin
(
static_cast
<
D
&
>
(
this
)
)
)
.
2)
to-unsigned-like
(
ranges::
end
(
static_cast
<
const
D
&
>
(
this
)
)
-
ranges::
begin
(
static_cast
<
const
D
&
>
(
this
)
)
)
.
참고 사항
다음 파생 타입들은
size()
의 기본 구현을 사용할 수 있습니다:
다음 타입들은
std::ranges::view_interface
에서 파생되었으며 자체적인
size()
멤버 함수를 선언하지 않지만, 해당 반복자와 센티넬 타입이
sized_sentinel_for
를 절대 만족하지 않기 때문에 기본 구현을 사용할 수 없습니다:
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
태그 내 내용, C++ 관련 용어(std::ranges::basic_istream_view 등)는 번역하지 않고 원본을 유지했습니다. 번역이 필요한 텍스트가 포함되지 않은 목록이므로 원본 HTML 구조를 그대로 반환합니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3646 | C++20 |
size
함수들의 기본 구현이 부호 있는 타입을 반환함
|
부호 없는 타입을 반환함 |
참고 항목
|
(C++17)
(C++20)
|
컨테이너나 배열의 크기를 반환합니다
(함수 템플릿) |
|
(C++20)
|
범위의 크기와 같은 정수를 반환합니다
(커스터마이제이션 포인트 객체) |
|
(C++20)
|
범위의 크기와 같은 부호 있는 정수를 반환합니다
(커스터마이제이션 포인트 객체) |