inner class 의 템플릿 완전특화
글쓴이: pok / 작성시간: 화, 2008/05/20 - 9:43오후
class A { protected: template< typename T > struct SDataManipulator{}; template<> struct SDataManipulator< int > { static int convertData(char* _pSzData){ return atoi( _pSzData ); } static const int getZero(){return 0;} }; template<> struct SDataManipulator< std::string > { static char* convertData(char* _pSzData){ return _pSzData; } static const char* getZero(){ return "0";} }; };
요런식으로 클래스 내에 protected로 써서 상속받는 클래스를 제외하고 외부로의 노출을 막으려고 했는데 gcc 3.4.4버전에서는 특화가 namespace 범위외에 있다고 에러를 내뿜으며 되지 않더군요.(Visual Studio 2005에서는 의도대로 잘 작동합니다.)
혹시 이거에 대한 표준 아시는 분 계시나요? vs의 확장표준인지 gcc가 표준을 잘 못지키고 있는건지 궁금하네요.
Forums:
댓글 달기