float App::fresnelReflectTerm(float etaPos, float etaNeg, float cos_theta_i)
{
float theta_i;
theta_i = acos(cos_theta_i);
...
這會產生一個「以重載函數錯誤曖昧電話」,並表示,有四個選項:錯誤:不明確調用重載函數
float acos(float fValue)
double acos(double _X)
float acos(float _X)
long double acos(long double _X)
我懷疑的問題是,第一和第三都採用float arg並返回浮點值。但任何人都可以給我一個關於如何確定(我使用Visual Studio)這四個函數來自哪裏的暗示,以便我可以消除重複,例如?或者只是給我一些關於如何解決這個問題的提示。
你在這個項目中使用了什麼? Math.h和GenericMathTemplateLibrary? – AndyG
我會從theta_i = acos((float)cos_theta_i)開始;只是爲了看看是否會僞造編譯器,如果這讓我無處回落在theta_i =(float)acos((double)cos_theta_i); –
謝謝。現在,我已經發現了蒂姆的想法(也是第一個 - 它不起作用),所以我就跑了。 – John