std::ranges:: views:: to_input, std::ranges:: to_input_view
|
헤더에 정의됨
<ranges>
|
||
|
template
<
ranges::
input_range
V
>
requires
ranges::
view
<
V
>
|
(1) | (C++26부터) |
|
namespace
views
{
inline
constexpr
/* 지정되지 않음 */
to_input
=
/* 지정되지 않음 */
;
|
(2) | (C++26부터) |
|
호출 시그니처
|
||
|
template
<
ranges::
viewable_range
R
>
requires
/* 아래 참조 */
|
(C++26부터) | |
-
views::
all
(
e
)
, 만약 이것이 형성 가능한(well-formed) 표현식이고 아래 조건들이 모두
true
인 경우:
-
T가input_range를 모델(model)하고, -
T가common_range를 만족하지 않으며, -
T가forward_range를 만족하지 않는 경우.
-
- to_input_view { e } 그 외의 경우.
따라서,
to_input_view
는
input_range
보다 강력한 범위 개념들을 모델링하지 않습니다. 특히 다음 개념들을 모두 모델링하지 않습니다:
또한,
to_input_view
는
common_range
를 모델링하지 않습니다. 그러나 이는
borrowed_range
,
constant_range
, 그리고
sized_range
를 모델링합니다. 단, 기본 뷰
V
가 해당 개념들을 모델링할 때에 한합니다.
목차 |
데이터 멤버
| 멤버 | 설명 |
V
base_
(private)
|
기반 뷰
( 설명 전용 멤버 객체* ) |
멤버 함수
to_input_view
를 생성합니다
(public 멤버 함수) |
|
|
기본 (적응된) 뷰의 복사본을 반환합니다
(public 멤버 함수) |
|
|
시작 부분에 대한 반복자를 반환합니다
(public 멤버 함수) |
|
|
끝 부분에 대한 반복자나 센티널을 반환합니다
(public 멤버 함수) |
|
요소의 개수를 반환합니다. 기본 (적응된) 범위가
sized_range
를 만족하는 경우에만 제공됩니다.
(public 멤버 함수) |
|
std::ranges::view_interface 로부터 상속됨 |
|
파생된 뷰가 비어 있는지 여부를 반환합니다.
sized_range
또는
forward_range
를 만족하는 경우에만 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
|
(C++23)
|
범위의 시작 부분에 대한 상수 반복자를 반환합니다
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
(C++23)
|
범위의 상수 반복자에 대한 센티널을 반환합니다
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
파생된 뷰가 비어 있지 않은지 여부를 반환합니다.
ranges::empty
가 적용 가능한 경우에만 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
파생된 뷰의 데이터 주소를 가져옵니다. 반복자 타입이
contiguous_iterator
를 만족하는 경우에만 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
파생된 뷰의 첫 번째 요소를 반환합니다.
forward_range
를 만족하는 경우에 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
파생된 뷰의 마지막 요소를 반환합니다.
bidirectional_range
와
common_range
를 만족하는 경우에만 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
파생된 뷰의
n
번째
요소를 반환합니다.
random_access_range
를 만족하는 경우에만 제공됩니다.
(
std::ranges::view_interface<D>
의 public 멤버 함수)
|
|
std::ranges::to_input_view:: to_input_view
|
to_input_view
(
)
requires
std::
default_initializable
<
V
>
=
default
;
|
(1) | (C++26부터) |
|
constexpr
explicit
to_input_view
(
V base
)
;
|
(2) | (C++26부터) |
base_
를 값 초기화합니다.
base_
를
std
::
move
(
base
)
로 초기화합니다.
매개변수
| base | - | 뷰 |
std::ranges::to_input_view:: base
|
constexpr
V base
(
)
const
&
requires
std::
copy_constructible
<
V
>
;
|
(1) | (since C++26) |
|
constexpr
V base
(
)
&&
;
|
(2) | (since C++26) |
std::ranges::to_input_view:: begin
|
constexpr
auto
begin
(
)
requires
(
!
__simple_view
<
V
>
)
;
|
(1) | (C++26부터) |
|
constexpr
auto
begin
(
)
const
requires
ranges::
range
<
const
V
>
;
|
(2) | (C++26부터) |
std::ranges::to_input_view:: end
|
constexpr
auto
end
(
)
requires
(
!
__simple_view
<
V
>
)
;
|
(1) | (C++26부터) |
|
constexpr
auto
end
(
)
const
requires
ranges::
range
<
const
V
>
;
|
(2) | (C++26부터) |
std::ranges::to_input_view:: size
|
constexpr
auto
size
(
)
requires
ranges::
sized_range
<
V
>
;
|
(1) | (C++26부터) |
|
constexpr
auto
size
(
)
const
requires
ranges::
sized_range
<
const
V
>
;
|
(2) | (C++26부터) |
추론 가이드
|
template
<
class
R
>
to_input_view ( R && ) - > to_input_view < views:: all_t < R >> ; |
(C++26부터) | |
중첩 클래스
|
반복자 타입
( 설명 전용 멤버 클래스 템플릿* ) |
헬퍼 템플릿
|
template
<
class
T
>
constexpr
bool
enable_borrowed_range
<
std
::
ranges
::
to_input_view
<
T
>>
=
|
(C++26부터) | |
std
::
ranges::
enable_borrowed_range
의 이 특수화는 기본 뷰가
borrowed_range
를 만족할 때
to_input_view
가 이를 만족하도록 합니다.
참고 사항
to_input_view
는 더 높은 반복자 강도를 위한 연산 지원을 제공하는 데 필요한 오버헤드를 피하는 데 유용할 수 있습니다.
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_ranges_to_input
|
202502L
|
(C++26) |
std::ranges::to_input_view
|
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
(C++20)
|
반복자 타입이
input_iterator
를 만족하는 범위를 지정함
(concept) |
view
를
common_range
로 변환함
(class template) (range adaptor object) |