模板化函数中STL容器的默认参数

时间:2014-11-09 02:22:10

标签: c++ templates stl

我有一个形式为

的模板化函数
template <typename T>
void my_fct( vector<T> ){...}

并且想提供一个默认参数,这样也可以调用my_fct()。显然,编译器不知道什么类型&#34; T&#34;在这种情况下,但在某种情况下是否有某种方法可以给它一个默认类型?

我试图传递一个double类型的空向量

template <typename T>
void my_fct( vector<T> = vector<double> ){...}

但这不起作用。

谢谢!

1 个答案:

答案 0 :(得分:1)

使T成为默认参数:

template <typename T = double>
void my_fct( vector<T> = vector<T>() ) {...}

因此,当用户使用零参数调用函数时,向量的类型将std::vector<double>初始化为默认参数。