2014-03-07 5 views
2

첨부 된 코드 쇼와 같은 가변 인자 템플릿 파라미터를 typedef하고 싶습니다. 그것을 달성 할 수 있습니까?가변 인자 템플릿 파라미터에 대한 C++ typedef

template <typename... T> 
class Test 
{ 
public: 
    typedef T Arg; 
}; 

template <typename T> 
class X 
{ 
public: 
    X(T::Arg arg); 
}; 
+3

팩은 유형이 아닙니다. 그들은 이상한 것들입니다. – Simple

답변

3

팩을 팩으로 지정할 수 없습니다. 그래도 std::tuple에 넣을 수 있습니다. 그 후 Arg에서 매개 변수 목록 T ...와 기능을 획득

template <typename... T> 
class Test 
{ 
public: 
    typedef std::tuple< T ... > Arg; 
}; 

조금 더 많은 일을한다, 나는 디자인 패턴으로 그렇게하지 않는 것이 좋습니다. class TestX::X을 다른 방법으로 연결하는 것이 좋습니다.

+0

첨부 된 코드는 테스트에 불과합니다. 이 방법으로 사용할 수있는 확장 계층을 작성 중입니다. _class myclass : public 확장 가능 _. myclass_extension_descriptor는 _를 설명하는 _typedef입니다. 확장 가능한 클래스에는 다음과 같은 load_extension 메서드가 있습니다. _void load_extension (const std :: string & path, myclass_extension_descriptor :: Args ... args) _. –