Visual Studio编译器默认使用std

时间:2018-10-06 06:46:31

标签: visual-c++

#include <iostream>
int main() {
    std::cout << abs(-5.3) << "\n";
}

使用g ++进行编译时,它会显示5,我得到了-重载的Abs位于std中,而我没有使用它。

但是,如果我使用Visual Studio编译器(19.14.26433),则结果为5.3。

如果我添加std,则VS没问题,g ++要求cmath

例如systemsystem("foo")相同。 VS编译器没问题,但是g ++再次需要std

在VS中,这并不是隐含的using namespace std,因为如果没有cout,其他函数(例如std)将无法编译。

因此,VS编译器默认包含std中的某些特定功能吗?是否在某处列出了它们?还是这里还有其他事情?

1 个答案:

答案 0 :(得分:0)

好像我已经找到问题的一半, Igor Tandetnik是正确的。

math.hcmath在Visual C ++中的实现方式有所不同,第一个具有int abs(int),第二个具有其他类型的重载功能。不需要std。 iostream包括cmath。 哦,我的傻瓜...