부분 템플릿 특수화에서 "Invalid Use of Incomplete Type" 오류
다음 구문을 사용하여 템플릿 함수의 부분 특수화를 만들려고 할 때 :
template <typename T> void foo<int, T>::bar() { }
'잘못된 불완전 유형 'struct의 사용이 잘못되었습니다'라는 오류가 나타날 수 있습니다. foo
이 문제를 해결하려면 클래스를 부분적으로 특수화할 때 전체 템플릿 서명을 지정하세요.
template <typename S, typename T> struct foo { void bar(); }; template <> struct foo<int, T> { void bar() { } };
또는, 중첩된 템플릿 구조를 생성하거나 부분적으로 다른 템플릿에서 파생하는 등의 해결 방법을 사용할 수 있습니다.
참고: 이는 멤버 기능의 부분 전문화에만 적용됩니다. 템플릿 기능을 완전히 전문화한다고 해서 템플릿 전체를 전문화할 필요는 없습니다.
위 내용은 템플릿 함수 멤버의 부분 특수화로 인해 '불완전한 유형의 잘못된 사용'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!