使用模板类作为参数

Mei*_*eir 0 c++ templates

有没有办法创建一个接受给定模板类的任何版本的函数?

例如,这工作:

ostream& operator << (ostream &out,const Vector<int>& vec);
Run Code Online (Sandbox Code Playgroud)

但这不是:

ostream& operator << (ostream &out,const Vector& vec);
Run Code Online (Sandbox Code Playgroud)

对于任何版本的向量,是否有可能以某种方式使第二行工作?例如vector<int>,vector<double>而不必编写2个单独的功能?

添加到问题:

我已经使op <<模板功能像你建议的那样.为了使它成为vector类的友元函数,我尝试将以下内容添加到Vector类定义中,但它不起作用:

friend ostream& operator << (ostream &out, const Vector<T>& vec); 
Run Code Online (Sandbox Code Playgroud)

任何想法可以做些什么来解决它?

Ale*_*lli 5

当然,使它成为模板功能:

template <typename T>
ostream& operator << (ostream &out,const Vector<T>& vec);
Run Code Online (Sandbox Code Playgroud)