Где определить макросы _SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING или _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS? - PullRequest
0 голосов
/ 04 декабря 2018

Я разрабатываю программу TCP / IP с использованием Boost.Asio, но получаю сообщение об ошибке:

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)

...