好的,假设我有这样的功能
template <typename T>
void Func(std::vector<T> x, T alpha = 1)
{
// ... do stuff
}
我想用一个复杂的类型,像这样
std::vector<std::complex<double>> x;
Func(x, 5.5);
然后编译器抱怨(VS2010)template parameter 'T' is ambiguous
因为它could be 'double' or 'std::complex<double>'
. 明显的修复,这样称呼它
Func(x, std::complex<double>(5.5));
但是,那个,我不想要。为什么不能自动转换为复杂类型?