struct X {};
struct A {
template<class T>
struct B;
template<>
struct B<X> {};
};
int main() {
typedef A::B<X> b_t;
b_t b;
return 0;
}
Вот по какой-то причине так нельзя.
template<class T1, class T2>
struct Helper;
template<class T>
struct Helper<T, T> {};
struct X {};
struct A {
template<class T>
struct B : public Helper<T, X> {};
};
int main() {
typedef A::B<X> b_t;
b_t b;
return 0;
}
А так велосипед. Есть вариант покороче?