C++ 在模板中使用模板实例类型

C++ 在模板中使用模板实例类型,c++,c++11,templates,c++14,C++,C++11,Templates,C++14,如果我要写一个模板 template<class T> class myTemplate{ ... }; 模板 类myTemplate{ ... }; C++11或C++14中是否有语法允许我在实际的模板声明中识别myTemplate*类型 例如,编写以下内容的正确语法是什么 template <class T> class myTemplate{ ... void myTemplate(myTemplate<T>*, int); .... }; 模

如果我要写一个模板

  template<class T>
class myTemplate{
...
};
模板
类myTemplate{
...
};
C++11或C++14中是否有语法允许我在实际的模板声明中识别
myTemplate*
类型

例如,编写以下内容的正确语法是什么

template <class T>
class myTemplate{
...
void myTemplate(myTemplate<T>*, int);
....
};
模板
类myTemplate{
...
作废myTemplate(myTemplate*,int);
....
};
短暂性脑缺血发作

Vinod

myTemplate
中,您可以引用与
myTemplate
相同的类型(作为方法参数),或者只引用
myTemplate
。引用指向此类型的指针也是如此

这样你就可以写作了

 myTemplate (myTemplate<T> *, int) {}
当您想要为不同的
T
类型引用
myTemplate
时,您必须明确它。因此,您可以为所有可能的
myTemplate
类型编写一个接受
myTemplate
指针的模板
myTemplate
构造函数,如下所示

template <typename U>
myTemplate (myTemplate<U> *, int) { }
模板
myTemplate(myTemplate*,int){}

显然,您必须避免内部模板的标识符
T
,以避免与外部模板混淆。

构造函数没有返回类型。放下
作废
<代码>myTemplate(myTemplate*,int)
myTemplate
的构造函数的有效声明。我不太清楚你有什么问题。
template <typename U>
myTemplate (myTemplate<U> *, int) { }