코드에서 템플릿 기능 언어 :C++ : 부분 특수화하는 방법 템플릿 클래스
template<typename Group>
struct Vector3D {
Group x, y, z;
Vector3D(Group x, Group y, Group z) : x(x), y(y), z(z) {
}
template<int p> Group Norm() const;
};
template<typename Group> template<int p>
Group Vector3D<Group>::Norm() const {
return pow(pow(x, p) + pow(y, p) + pow(z, p), (1.0/p));
}
/*
template<typename Group> template<>
Group Vector3D<Group>::Norm<2>() const {
return sqrt(x * x + y * y + z * z);
}*/
주석으로 블록 VC11에서 컴파일에 실패 (vs2012)
이 사람이 무엇을 지적하는 데 도움이 수 partial에서 Norm 함수를 올바르게 처리 할 수 있습니까?
한 내 대답에 언급,하지만 다른 대안들 사이에서, A를 전달하지 않았나요 부분적으로 전문화 될 수있는 클래스 템플릿의 정적 멤버가 다른 좋은 옵션입니다. –