Android JNI的C++模板不能访问基类定义的类型

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){}
};
展开阅读全文

没有更多推荐了,返回首页