调用重载'pow(const double&,double)'是不明确的

时间:2013-04-11 16:11:13

标签: c++ compiler-errors double

我是C ++的新手,这是我的问题:我需要这个数量:

h = pow(mesh.V()[i0],1.0/3);

但是每当我编译程序时都会收到此错误消息:

    call of overloaded ‘pow(const double&, double)’ is ambiguous

如果我写

double V = mesh.V()[i0];
h = pow(V,1.0/3);

我明白了:

    call of overloaded ‘pow(double&, double)’ is ambiguous

现在我想我明白了const double& amp;和双&参考,但我怎么能转换 const double&一双?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

现在我想我明白了const double& amp;和双&参考,但我怎样才能转换const double&一双?

请注意,某些编译器会在错误消息中使用该语法来表示与代码中的含义不同的内容。错误消息告诉您用作函数参数的类型,而不是函数所用的类型。

如果您想在错误消息中获取double,您只需要调用一个按值double返回的函数,但这是您想要的内容。

您需要找出呼叫模糊的原因。编译器稍后会在错误消息中为您提供哪些函数签名?它应该,并阅读它正在考虑的不同重载将有助于找出在这种情况下它是模棱两可的。