1

我有一个类似的模板类:

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 类。

4

1 回答 1

3

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

class Test {
   public:
       template <typename T>           // member function template
       void func(typename def<T>::type & obj);
       //        ^^^^^^^^
};
于 2013-08-23T10:33:33.950 回答