2014-09-04 33 views
0

我收到錯誤:ISO C++說,這些都是模棱兩可

ISO C++說,這些都是不明確的,即使第一個最壞的轉換比第二最壞的轉換更好:

Distribution.H:515:注:候選者1:概率普通:: CDF(float64_t)const的

Distribution.H:512:注:候選人2:概率普通:: CDF(常量RationalVector &)」

RationalVector已定義as

class RationalVector : public Array<float64_t> 

我無法更改此類或「cdf」函數,因爲它們是第三方庫的一部分。我的代碼給出了以下行的錯誤:

return cABS*(exp(Md + 0.5*Vd)*stdN.cdf(d1) - K*stdN.cdf(d2)); 

其中d1和d2都是雙打。我試圖鑄造兩個人都要float64_t強制使用第一CDF功能的這樣:

return cABS*(exp(Md + 0.5*Vd)*stdN.cdf((float64_t)d1) - K*stdN.cdf((float64_t)d2)); 

然而,錯誤仍然存​​在。

正常功能被定義爲:

Probability cdf(float64_t x) const; 
Probability cdf(RationalVector const & x); 

任何想法是什麼問題,或如何解決呢?

回答

1

第二次重載未命中const,這可能是歧義的原因。

如果您打算調用第一個重載,請嘗試使stdN爲const對象。

+0

太棒了,非常感謝你! – jpints14 2014-09-04 16:03:07