Namespaces
Variants

tuple-like , pair-like

From cppreference.net
Utilities library
template < class T >
concept tuple-like = /* see below */ ;
(1) (C++23부터)
( 설명 전용* )
template < class T >

concept pair-like =

tuple-like < T > && std:: tuple_size_v < std:: remove_cvref_t < T >> == 2 ;
(2) (C++23부터)
( 설명 전용* )
1) 타입 T 가 다음을 만족하고 개념 tuple-like 을 모델링하는 경우: std:: remove_cvref_t < T > 가 다음 중 하나의 특수화인 경우:
(C++26부터)
2) pair-like 객체는 정확히 2개의 요소를 가진 tuple-like 객체입니다.

참고 사항

tuple-like 타입은 tuple 프로토콜 을 구현합니다. 즉, 이러한 타입들은 std::get , std::tuple_element std::tuple_size 와 함께 사용될 수 있습니다.

tuple-like 타입의 요소들은 구조화된 바인딩 으로 바인딩될 수 있습니다.

참고 항목

tuple-like pair-like 는 다음 표준 라이브러리 구성 요소에서 사용됩니다:

새로운 tuple 을 생성함
(public member function)
tuple 의 내용을 다른 tuple 에 할당함
(public member function)
(C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20)
튜플의 값을 사전식 순서로 비교함
(function template)
tuple tuple-like 타입의 공통 참조 타입을 결정함
(class template specialization)
tuple tuple-like 타입의 공통 타입을 결정함
(class template specialization)
(C++11)
임의의 개수의 튜플들을 연결하여 tuple 을 생성함
(function template)
(C++17)
튜플 인자들로 함수를 호출함
(function template)
튜플 인자들로 객체를 생성함
(function template)
새로운 pair 를 생성함
( std::pair<T1,T2> 의 public member function)
내용을 할당함
( std::pair<T1,T2> 의 public member function)
subrange pair-like 타입으로 변환함
( std::ranges::subrange<I,S,K> 의 public member function)
tuple-like 값들로 구성된 view 와 숫자 N을 취해 각 튜플의 N 번째 요소들의 view 를 생성함
(class template) (range adaptor object)