Namespaces
Variants

std::ranges:: views:: to_input, std::ranges:: to_input_view

From cppreference.net
Ranges library
Range adaptors
헤더에 정의됨 <ranges>
template < ranges:: input_range V >

requires ranges:: view < V >
class to_input_view

: public ranges:: view_interface < to_input_view < V >>
(1) (C++26부터)
namespace views {

inline constexpr /* 지정되지 않음 */ to_input = /* 지정되지 않음 */ ;

}
(2) (C++26부터)
호출 시그니처
template < ranges:: viewable_range R >

requires /* 아래 참조 */

constexpr ranges:: view auto to_input ( R && r ) ;
(C++26부터)
1) 기본 view input_range -only 이면서 common_range 가 아닌 뷰로 표현하는 범위 어댑터.
2) RangeAdaptorObject . e 를 부분식(subexpression)으로 하고, T decltype ( e ) 라 하자. 그러면 표현식 views :: to_input ( e ) 는 다음 표현과 표현식 동등(expression-equivalent) 하다:
  • views:: all ( e ) , 만약 이것이 형성 가능한(well-formed) 표현식이고 아래 조건들이 모두 true 인 경우:
  • 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부터)
1) 기본 멤버 초기화자( = V ( ) )를 통해 base_ 를 값 초기화합니다.
2) 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)
1) 기본 뷰에서 결과를 복사 생성합니다. 다음과 동일합니다: return base_ ; .
2) 기본 뷰에서 결과를 이동 생성합니다. 다음과 동일합니다: return std :: move ( base_ ) ; .

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부터)
1) 다음과 동등함: return /*iterator*/ < false > ( ranges:: begin ( base_ ) ) ;
2) 다음과 동등함: return /*iterator*/ < true > ( ranges:: begin ( base_ ) ) ;

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부터)
1,2) 다음 코드와 동등함: return ranges:: end ( base_ ) ;

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부터)
1,2) 다음 코드와 동등함: return ranges:: size ( base_ ) ;

추론 가이드

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 >> =

ranges:: enable_borrowed_range < 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

예제

참고 항목

반복자 타입이 input_iterator 를 만족하는 범위를 지정함
(concept)
view common_range 로 변환함
(class template) (range adaptor object)