我的公司有一個軟件,運動一個相當大的代碼庫。最近,我被分配了檢查代碼是否會使用gcc 4.1.2在x86_64目標上編譯的任務。編譯中對代碼做了很小的修改,但是今天早上我收到了一些令人困惑的編譯錯誤。編譯器錯誤:無與倫比的pow調用(...)
該代碼正在嘗試並失敗,使用int, unsigned int&
作爲參數從<cmath>
調用pow
。編譯器吐出一個錯誤,因爲它找不到合適的匹配來調用。是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
?謝謝。
P.S.我無法更改參數的數據類型,因爲這樣做會需要太多的工作。我的任務是獲取代碼進行編譯,詳細說明我所做的任何黑客攻擊,以便稍後我們可以查看這些黑客並找到正確的方法處理它們。
也許你可以添加確切的編譯錯誤?那些違規的線? – xtofl 2011-01-26 07:56:48
你不能只將'unsigned int&'轉換爲int或float嗎?試試pow(a,(float)b) – fazo 2011-01-26 07:58:34