struct Bar {
enum { Special = 4 };
};
template<class T, int K> struct Foo {};
template<class T> struct Foo<T,T::Special> {};
Zastosowanie:Czy można specjalizować szablon za pomocą wyliczenia członka?
Foo<Bar> aa;
nie skompilować za pomocą gcc 4.1.2 narzeka o wykorzystaniu T::Special
częściowego specilization Foo. Jeśli Special
byłaby klasą, rozwiązaniem byłaby nazwa pliku przed nim. Czy istnieje coś podobnego do wyliczenia (lub liczb całkowitych)?
Interesujące pytanie. –
Jeśli zastąpisz T :: Special konkretną liczbą całkowitą (99, powiedzmy), to nadal nie skompiluje się pod g ++ 4.4.0: "błędna liczba argumentów szablonu (1, powinna być 2)." Zdaję sobie sprawę, że jest to oddzielny problem, ale czy kompilator nie powinien tego akceptować? – TonyK