std::experimental::ranges:: value_type
|
헤더에 정의됨
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct value_type { } ; |
(1) | |
|
template
<
class
T
>
struct value_type < T * > ; |
(2) | |
|
template
<
class
I
>
requires
std::
is_array
<
I
>
::
value
|
(3) | |
|
template
<
class
T
>
struct value_type < const T > : value_type < std:: decay_t < T >> { } ; |
(4) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
value_type
;
}
|
(5) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
element_type
;
}
|
(6) | |
타입
I
의 관련 값 타입을 계산합니다(존재하는 경우). 사용자는 프로그램 정의 타입에 대해
value_type
을 특수화할 수 있습니다.
T
가 객체 타입인 경우,
type
멤버 타입을
std::
remove_cv_t
<
T
>
와 동일하게 제공합니다. 그렇지 않은 경우,
type
멤버가 존재하지 않습니다.
value_type
을 정의하는 타입들에 대한 특수화.
T::value_type
이 객체 타입인 경우,
T::value_type
과 동일한
type
멤버 타입을 제공합니다. 그렇지 않은 경우,
type
멤버는 존재하지 않습니다.
element_type
을 정의하는 타입들에 대한 특수화 (예:
std::shared_ptr
). 만약
T::element_type
이 객체 타입인 경우,
std::
remove_cv_t
<
typename
T
::
element_type
>
와 동일한
type
멤버 타입을 제공합니다. 그렇지 않은 경우,
type
멤버는 존재하지 않습니다.
목차 |
헬퍼 앨리어스 템플릿
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(범위 TS) | |
참고 사항
만약 타입이
value_type
멤버와
element_type
멤버를 모두 포함하는 경우, 특수화
(5)
와
(6)
는 모호합니다.
value_type
는 반복자와 같은
Readable
타입과 함께 사용하기 위한 것입니다. 범위(ranges)와 함께 사용하기 위한 것은 아닙니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
operator*
를 적용하여 타입이 읽을 수 있음을 명시
(concept) |
|
|
반복자의 연관 타입들을 수집하는 호환성 특질 클래스
(alias template) |