#include<iostream>
double sqrt(double);
int main()
{
double a = std::sqrt(4.0);
std::cout << a;
return 0;
}
double sqrt(double a)
{
return 1.0;
}
我知道我首先声明了sqrt函数,但是即使我使用了std::sqrt,它仍然调用了我的sqrt函数。为什么?
#include<iostream>
double sqrt(double);
int main()
{
double a = std::sqrt(4.0);
std::cout << a;
return 0;
}
double sqrt(double a)
{
return 1.0;
}
我知道我首先声明了sqrt函数,但是即使我使用了std::sqrt,它仍然调用了我的sqrt函数。为什么?
在你的代码中搜索是否有using namespace std;
,也许它被隐藏在其他的头文件中。
using namespace std;
添加到 OP 的代码中对 clang-cl 和 MSVC 没有任何影响!与我在问题评论中的结果相同。 - Adrian Mole
std::sqrt
)。然而,MSVC编译器不喜欢它:错误C2169:“sqrt”:内部函数,无法定义。 - Adrian Mole