template <typename vec1, typename vec2>
class fakevector
{
    public:
       /* Do something */
};



template <class A>
class caller
{
    public:

    struct typeList
    {
        struct typeOne
        {
            //...
        };
    };

    typedef fakevector<typeList::typeOne,int> __methodList;  /* This will trigger compile error */

};

我收到的错误消息是:
  • 错误:类型/值不匹配
    模板参数中的参数1
    “模板类fakevector”列表
  • 错误:应该是一种类型,得到了“caller::typeList::typeOne”

    如果从调用者类中删除了模板 ,则不会报告错误
    像这样

    类调用者
    {
    上市:
    结构类型列表
    {....
    };

  • 我不知道原因非常感谢你!

    最佳答案

    尝试:

     typedef fakevector<typename typeList::typeOne,int> __methodList;
    

    http://www.comeaucomputing.com/techtalk/templates/#typename

    09-04 04:02