0
I just don’t understand why it’s wrong. This code works.
template
class test{
public:
struct st1{
T a, b, c;
};
struct st2{
T d, e, f;
};
T foo1(st1 *st);
st1 *foo2();
};
template
typename test::st1 *foo2()
{
return 0;
}
template
T test::foo1(typename st1 *st)
{
return 0;
}
But this one doesn’t work.
template
class test{
public:
struct st1{
T a, b, c;
};
struct st2{
T d, e, f;
};
T foo1(st1 *st);
st1 *foo2();
st1 *foo3(st2 *st);
};
template
T test::foo1(typename st1 *st)
{
return 0;
}
template
typename test::st1 *foo2()
{
return 0;
}
template
typename test::st1 *foo3(typename st1 *st)
{
return 0;
}
Honestly, I don’t believe that anyone works http://coliru.stacked-crooked.com/a/e6f47cd72c94782b
– user5299