explicit specialization in non-namespace scope... 에러가 납니다.
글쓴이: freetbet / 작성시간: 화, 2011/10/18 - 4:43오후
namespace A { namespace B { namespace C { template<USHORT paramA, USHORT param B> class X { ... private: template<USHORT paramC> static BOOL isType(){return FALSE;} template<> static BOOL isType<fillType>(){return TRUE;} // fillType은 앞서 정의돼 있습니다. .... };
이런 코드에서 두 번째
template<>...
라인에서
explicit specialization in non-namespace scope 'class A::B::C::D::isType'
라고 에러가 뜹니다. VC++2008 에서 이상없이 빌드된 코드인데, gcc에서는 안되는군요.
템플릿 특화와 관계된 것 같은데 namespace, 템플릿, static 멤버 함수까지 겹쳐져서 어떻게 해결해야 할지 모르겠습니다. ㅠ.ㅠ
Forums:
VC++의 버그입니다 14882-2003
VC++의 버그입니다
14882-2003 §14.7.3/2에 보면
explicit specializations have to be at namespace scope.
isType이 속한 namespace를 앞에 붙여주면 되겠네요.
Life rushes on, we are distracted
댓글 달기