반응형
가변인자 템플릿(Variadic template)를 활용하여 tuple 전체 요소를 출력
#include <iostream>
#include <tuple>
using namespace std;
//튜플과 index_sequence를 받아서 튜플 전체 요소를 출력
template<typename TP, size_t ... I>
void print_tuple_imp(const TP& tp, const index_sequence<I...>&)
{
int x[] = { get<I>(tp)... };
for (auto& n : x)
cout << n << ", ";
}
template<typename TP>
void print_tuple(const TP& tp)
{
// 튜플 사이즈를 구해서 index_sequence를 생성하여 print_tuple_imp에 전달
print_tuple_imp(tp, make_index_sequence<tuple_size<TP>::value>());
}
int main()
{
tuple<int, int, int> tp(1, 2, 3);
print_tuple(tp);
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ 템플릿 디자인 패턴 CRTP(Curiously Recurring Template Pattern) 패턴 (0) | 2021.01.07 |
---|---|
C++ 템플릿 패턴 Thin template, 코드 메모리 최적화 기법 (0) | 2021.01.07 |
C++ 가변인자 템플릿(Variadic template) tuple을 위한 get 구현 (0) | 2021.01.07 |
C++ 가변인자 템플릿(Variadic template) tuple 만들기 (0) | 2021.01.06 |
C++ 가변인자 템플릿(Variadic template) 함수 인자타입 구하기 (0) | 2021.01.06 |