在构建这个非常简单的测试程序时
#include <iostream>
int main() {
std::cout << "x";
}
使用 Visual Studio 2019,/Wall
我得到了一个
warning C4668: '__STDC_WANT_SECURE_LIB__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
尝试去
#define __STDC_WANT_SECURE_LIB__ 0
在包括 iostream 结果之前
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xlocnum(1388,69): error C2039: 'sprintf_s': is not a member of '`global namespace''
至少对于我的 VS。Godbolt没有抱怨。
#define __STDC_WANT_SECURE_LIB__ 1
很好,并且不会让编译器抱怨人们期望的 sprintf_s 。
Microsoft 在搜索时没有向我显示任何结果。. 所以在这里,但总的来说,我找不到很多关于是否以及如何使用该定义的资源。
有没有办法禁用安全扩展并包含<iostream>
?我为此使用了错误的定义或方法吗?