struct Bar {
enum { Special = 4 };
};
template<class T, int K> struct Foo {};
template<class T> struct Foo<T,T::Special> {};
사용법 :구성원 열거 형을 사용하여 템플릿을 전문화 할 수 있습니까?
Foo<Bar> aa;
그것은 푸의 부분 specilization에 대한 T::Special
의 사용에 대한 불평 GCC 4.1.2 를 사용하여 컴파일하는 데 실패합니다. Special
이 클래스 인 경우 솔루션은 앞에있는 typename에 대한 것입니다. 열거 형 (또는 정수)과 동일한 것이 있습니까?
흥미로운 질문입니다. –
T :: Special을 구체적인 정수 (99)라고 바꾸면 g ++ 4.4.0에서 '템플릿 인수의 개수가 잘못 (1, 2가되어야 함)'로 컴파일되지 않습니다. 별도의 문제는 아니지만 컴파일러가이를 받아 들여서는 안됩니까? – TonyK