Variadic Template_Parameter Pack

sz L·2023년 10월 19일
0

C++

목록 보기
39/40

Variadic Template

C++에선 Parameter Pack라고 한다.

수가 정해지지 않은 N개의 인자를 사용할 수 있는 기능이다.

기본 문법

template<typename... Values> class tuple;

위의 템플릿 클래스 tuple은 어떠한 타입이든 몇개든 상관없이 인자 생성이 가능하다.

아래와 같은 인스턴스도 가능함

tuple<int, std::vector<int>, std::map<std::string, std::vector<int>>> some_instance_name;

만약 최소한 하나의 인자는 받아야 한다고 강제하고 싶다면

template<typename First, typename... Rest> class tuple;

이 코드로 강제할 수 있따.


코드 예시

#include <iostream>
#include <tuple>

using namespace std;

void Check() {}		// 재귀 호출 종료용

template<typename T ,typename ... Types>
void Check(T value, Types ... args)
{
	cout << value << endl;
	Check(args...);
}
int main()
{
	Check(1, 2.2, "삼");
}

profile
가랑비는 맞는다 하지만 폭풍은 내 것이야

0개의 댓글