在哪里定义_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING或_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS宏?

时间:2018-12-04 12:14:44

标签: c++ boost boost-asio

我正在使用Boost.Asio开发TCP / IP程序,但出现错误:

note: see declaration of 'std::allocator<void>' 1>d:\hardware\libraries\visual studio 2017\x64\include\boost\asio\use_future.hpp(137): error C4996: 'std::allocator<void>': warning STL4009: std::allocator<void> is deprecated in C++17. You can define
_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning.

阅读错误后,我知道我已定义

_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING

_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS

我在配置属性-> C / C ++->常规->其他#using目录中定义了一次,但是错误仍然存​​在。

然后我#定义了主文件中的宏,然后再包含任何标头,但错误仍然存​​在。

然后我在经过编译的牧民中声明了该宏,但错误仍然存​​在。

我什至尝试了2种不同的增强包。一台装有vcpkg软件包管理器和一台预填充二进制文件。

MSVC 14.1 x64 提升:1.68(x64)

1 个答案:

答案 0 :(得分:1)

只需关闭“SDL 检查”即可。 详情:当前项目的属性页>'c/c++'>'General'>'SDL checks' (VS2019, Win10 X64; 2021/01/27)