template<typename T> struct AClass
{
public:
     template<typename T0>
     static void AFunc()
     {}
};

template<typename T>
void ATestFunc()
{
     AClass<T>::AFunc<int>();
}

这可以在其他平台上使用,但不能在iPhone上使用,我在调用该函数的行上收到错误消息“预期的'int'之前的主表达式”。

如果我要做的话它很好
AClass<int>::AFunc<int>();

如果我们也抛弃该函数的模板参数,它将很好地工作:
template<typename T> struct AClass
{
public:

     static void AFunc()
     {}
};

template<typename T>
void ATestFunc()
{
     AClass<T>::AFunc();
}

关于为什么它不适用于iPhone的任何想法?

最佳答案

尝试将AClass<T>::AFunc<int>()行更改为AClass<T>::template AFunc<int>();

10-08 00:42