template <typename T, unsigned D>
class Matrix
{
public:
T Determinant(void) const;
T m[D][D];
};
template <typename T>
T Matrix<T, 2>::Determinant(void) const
{
return m[0][0] * m[1][1] - m[1][0] * m[0][1];
}
안녕하세요, 포럼. 이 코드를 가지고, 그러나 나는 오류 얻을 : 무엇이 잘못되었는지템플릿 부분적 구체화
1>c:\dropbox\projects\math\matrix.h(319): error C3860: template argument list following class template name must list parameters in the order used in template parameter list
1>c:\dropbox\projects\math\matrix.h(319): error C2976: 'Math::Matrix<T,D>' : too few template arguments
모른다. 도와주세요.
저는 여러분이 개별 클래스가 아닌 전체 클래스를 전문화 할 수 있다고 생각합니다. – Adam
부분 템플릿 특수화로 인한 [ "불완전 유형의 유효하지 않은 사용"오류] 가능한 복제본 (http://stackoverflow.com/questions/165101/invalid-use-of-incomplete-type-error-with-partial-template-specialization) –
당신이 할 수있는 일은'결정자 (Determinant) '를 비회원 (친구 일 수도 있음)으로 만들고 과부하 *로 만드는 것입니다. –