: 서로 다른 타입의 데이터를 여러개 보관할 수 있는 container
Tuple 은 Variadic arguments 를 활용할 수 있는 좋은 container
그렇다면 Tuple 을 직접 만들어 보자!!
Tuple 만들기
1. variadic arguments 사용한다.
2. 첫 번째 템플릿 인자는 독립적인 타입으로 받아야 한다.
Recursive function 을 만들 듯이,
인자를 한 개만 받을 때를 먼저 생각하면 좀 더 쉽게 접근할 수 있다.
그럼 이제 데이터를 꺼내 오는 방법에 대해 생각해보자.
매번 casting 해서 값을 꺼내오는 방법은 너무 불편하다!
Template partial specialization 을 이용해서 N번째 요소의 값을 가져오는 함수를 만들어 보자!
위 예제를 살펴보면,
xget() 함수 하나로 xtuple 에서 N번째 요소에 접근할 수 있게 되었다.
먼저 이전 예제에서 개선되어야 했던 점은, N번째 요소에 접근하기 위해
해당 xtuple 의 타입을 직접 캐스팅해야 한다는 점이다.
그래서 부분 전문화를 이용해서 N번째의 value의 type과 N번째의 xtuple 의 type을 구분할 수 있게 했다.
결국엔 부분 전문화를 type을 나타내기 위한 사용하였고,
N번째 값에 대한 타입은 xtuple_element
N번째 xtuple에 대한 타입은 xtuple_element
하지만 이 모든 것이 xget() 내부에 있기 때문에 xget() 함수 호출만으로 편리하게 사용할 수 있게 되었다.
댓글 없음:
댓글 쓰기