模板类的typedef

typedef for template class

本文关键字:typedef      更新时间:2023-10-16

我有一个模板类,类似于:

template< type T >
class temp {
   T val;
};

我在另一个类中传递这个类对象的引用。

template <type T>
struct def {
    typedef def<T> type;
};
class Test {
   public:
       void func(def<T>::type & obj);
};

我试图创建一个typedef别名并在函数参数中使用它,但导致了一个错误。我无法将Test类模板化。

func成员函数必须是成员函数模板。您必须在适当的位置添加一个typename,因为您正在处理一个依赖名称:

class Test {
   public:
       template <typename T>           // member function template
       void func(typename def<T>::type & obj);
       //        ^^^^^^^^
};