특정 유형에 대한 가변 템플릿 클래스를 전문화하려고합니다.
나는 이것을 달성하려고 노력하고 있습니다.
template<typename... Ts>
class myclass
{
///...
};
template<>
class myclass<int... N>
{
///...
};
그리고이 오류가 발생합니다.
error C2760: syntax error: unexpected token 'int', expected 'expression'
error C2187: syntax error: '...' was unexpected here
error C2065: 'N': undeclared identifier
error C2913: explicit specialization; 'ex::vec' is not a specialization of a class templa
누구든지 내가 뭘 잘못하고 있는지 힌트를 줄 수 있습니까?
귀하는 myclass
템플릿 매개 변수의 가변 목록 선언
template<typename... Ts>
class myclass
질문에서와 같이 특정 값이 아닌 특정 유형에 대해 전문화 할 수 있습니다 (구문에 대해서는 수정되었지만 유형 / 값 문제에 대해서는 잘못 유지됨)
template <int N>
class myclass<N...>
클래스의 템플릿 매개 변수로 값이 있으면 다릅니다.
template <typename ... Ts>
class myclass
{ };
template <template <int...> class C, int ... Is>
class myclass<C<Is...>>
{ };
// ...
template <int ...>
class foo
{ };
// ...
myclass<foo<0, 1, 2>> m0; // uses specialization
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다