繁体   English   中英

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

[英]Call of overloaded ‘pow(const double&, double)’ is ambiguous

我是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和double并且引用了什么,但是如何将const double转换为double?

谢谢!

现在我想我明白了const double和double并且引用了什么,但是如何将const double转换为double?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM