gpt4 book ai didi

c++ - 编译器错误 : unmatched call to pow(. ..)

转载 作者:行者123 更新时间:2023-11-30 03:08:38 26 4
gpt4 key购买 nike

我的公司有一款软件,代码库相当大。最近我被分配了一项任务,检查代码是否可以使用 gcc 4.1.2 在 x86_64 目标上编译。我对代码进行了非常小的修改,在编译过程中取得了相当大的进展,但就在今天早上,我遇到了一个有点令人困惑的编译错误。

代码正在尝试调用 pow,但失败了来自 <cmath>使用 int, unsigned int&作为参数。编译器吐出一个错误,因为它找不到合适的匹配项来调用。 pow 的重载在<cmath>如下:

double pow(double base, double exponent)
long double pow(long double base, long double exponent)
float pow(float base, float exponent)
double pow(double base, int exponent)
long double pow(long double base, int exponent)

我不是很清楚为什么它建立在我们的 32 位环境上,但现在这不是重点。

我的问题是:我应该如何转换参数,即 pow我应该使用吗?谢谢。

附言我无法更改参数的数据类型,因为这样做需要太多工作。我的任务是编译代码,详细说明我所做的任何黑客攻击,以便以后我们可以检查这些黑客攻击并找到正确的方法来处理它们。

最佳答案

如果您要对 pow(int, unsigned int) 进行多次调用,为什么不自己编写代码呢?如果执行速度不是问题,则工作量不大。

否则,我会使用 pow() 重载,其输入参数保证包含您的预期值,例如 pow(float, float)战俘(双,双)。无论如何,我觉得制作自己的版本可以避免 float 和整数之间的转换问题。

关于c++ - 编译器错误 : unmatched call to pow(. ..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com