M
Marc
I am having trouble understanding why the following is forbidden:
template<class> struct A {
template<class>struct B;
template<>struct B<int>{};
template<>struct B<double>{};
};
while this is perfectly fine:
template<class> struct A {
template<class,int=0>struct B;
template<int i>struct B<int,i>{};
template<int i>struct B<double,i>{};
};
Well, I know the difference between the 2 cases, what I am interested
in is the reason that led to standardize things this way (I'd be happy
to learn it is just lack of interest).
Workarounds can be painful.
template<class> struct A {
template<class>struct B;
template<>struct B<int>{};
template<>struct B<double>{};
};
while this is perfectly fine:
template<class> struct A {
template<class,int=0>struct B;
template<int i>struct B<int,i>{};
template<int i>struct B<double,i>{};
};
Well, I know the difference between the 2 cases, what I am interested
in is the reason that led to standardize things this way (I'd be happy
to learn it is just lack of interest).
Workarounds can be painful.