template<class T>
class CA
{
public:
struct S_A
{
int a;
};
};
template<class T>
class CB:public CA<T>
{
public:
void Fun( S_A &refArg){}//;'S_A' has not been declared
}
上面代码在VC中没有任何问题,
在安卓的JNI编译中,用NDK-BUILD(可能也是GCC吧)编译就不行,
必须改写成下面就正常了
template<class T>
class CA
{
public:
struct S_A
{
int a;
};
};
template<typename T>
class CB:public CA<T>
{
public:
typedef typename CA<T>::S_A type_SA;
void Fun( type_SA &refArg){}
};