std::experimental::ranges:: tagged
|
헤더에 정의됨
<experimental/ranges/utility>
|
||
|
template
<
class
Base,
TagSpecifier
...
Tags
>
requires sizeof...
(
Tags
)
<=
std::
tuple_size
<
Base
>
::
value
|
(ranges TS) | |
클래스 템플릿
tagged
는 튜플과 유사한 클래스 타입
Base
를 공개적으로 상속받아, 태그 지정자
Tags...
로 지정된 명명된 접근자 집합으로 확장합니다. 태그는 순서대로 적용됩니다:
Tags...
의 i번째 태그 지정자는 튜플의 i번째 요소에 대응합니다.
Tags...
내의 태그 지정자는 고유해야 합니다. 그렇지 않을 경우 동작은 정의되지 않습니다.
tagged
인스턴스를
Base
가 아닌 다른 베이스 클래스 포인터를 통해 삭제하는 것은 불가능합니다.
목차 |
멤버 함수
tagged
객체를 생성합니다
(public member function) |
|
tagged
객체를 할당합니다
(public member function) |
|
두
tagged
객체의 내용을 교환합니다
(public member function) |
명명된 요소 접근자
Tags...
에서
N
-번째 태그 지정자에 해당하는 요소 이름이
name
인 경우,
tagged
는 다음과 같이
name
이라는 접근자를 제공합니다:
constexpr decltype(auto) name() & { return std::get<N>(*this); } constexpr decltype(auto) name() const & { return std::get<N>(*this)} constexpr decltype(auto) name() && { return std::get<N>(std::move(*this)); }
비멤버 함수
tagged
객체에 대한
swap
특수화
(함수) |
튜플 방식 접근
tagged
의 크기를 구함
(클래스 템플릿 특수화) |
|
tagged
요소들의 타입을 구함
(클래스 템플릿 특수화) |
참고 항목
|
타입이 태그 지정자임을 명시함
(concept) |
|
|
태그가 지정된
std::pair
의 앨리어스 템플릿
(alias template) |
|
tagged_pair
생성을 위한 편의 함수
(function template) |
|
|
태그가 지정된
std::tuple
의 앨리어스 템플릿
(alias template) |
|
tagged_tuple
생성을 위한 편의 함수
(function template) |
|
|
ranges::tagged
와 함께 사용하기 위한 태그 지정자들
(class) |