私はこのコードを持っています:
int findY ( int x, int r) {
return sqrt(pow(x,2) - pow(r,2));
};
しかし、何らかの理由で、Msintellisenseはそれを間違った構文としてフラグを立てています。理由はわかりません。
それが与えるエラーを見てください:
1>..\main.cpp(7): error C2668: 'pow' : ambiguous call to overloaded function
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h(583): could be 'long double pow(long double,int)'
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h(535): or 'float pow(float,int)'
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h(497): or 'double pow(double,int)'
1> while trying to match the argument list '(int, int)'
基本的に、それはあいまいな過負荷です。したがって、明確にするためにキャストする必要があります。
return sqrt(pow((double)x,2.) - pow(((double)r,2.));
それだけでなく、return型をintにするつもりでしたか?