代码之家  ›  专栏  ›  技术社区  ›  matt

iphone编译移植的代码问题:调用模板化类==fail内的静态模板化函数

  •  1
  • matt  · 技术社区  · 15 年前
    template<typename T> struct AClass
    {
    public:
         template<typename T0>
         static void AFunc()
         {}
    };
    
    template<typename T>
    void ATestFunc()
    {
         AClass<T>::AFunc<int>();
    }
    

    这适用于其他平台,但不适用于iPhone,我在调用函数的行中得到一个错误“expected primary expression before‘int’”。

    如果我愿意的话,它会很好的工作。

    AClass<int>::AFunc<int>();
    

    如果我们放弃函数的模板参数,它也可以很好地工作:

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

    有什么关于为什么它不能和iPhone一起工作的想法吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   mukeshkumar    15 年前

    试着换线 AClass<T>::AFunc<int>() AClass<T>::template AFunc<int>();