2017-12-15 2 views
-1
template <int S> 
struct Vec {}; 

이제 이러한 벡터 만 허용되지만 템플릿 매개 변수의 값이 다른 함수를 작성하고 싶습니다. 다음과 같이 호출 할 수 있습니다.특정 템플릿 유형의 가변 개수의 매개 변수가있는 템플릿 함수

어떻게 이러한 함수를 작성할 수 있습니까? 나는 매개 변수 팩을 사용하고 싶다. 그것과 같을 수 :

template<int... Ss> 
f(Vec<Ss...> vecs); 

을 나는 사용자가 기능이 단지 선언에서가 아니라 컴파일 오류에서 벡터를 기대하고 있음을 볼 수 있도록하고 싶습니다.

답변

2

당신은 사용할 필요가 :

template <int... Ss> 
void f(Vec<Ss>... vecs) { ... } 

내 설정에서 빌드 프로그램 :

template <int S> 
struct Vec {}; 

template <int... Ss> 
void f(Vec<Ss>... vecs) 
{ 
} 

int main() 
{ 
    f(Vec<1>(), Vec<2>(), Vec<3>()); 
} 
관련 문제