В соответствии с Улучшения безопасности в CRT а также Безопасные перегрузки шаблона, с помощью _CRT_SECURE_NO_WARNINGS можно отключить предупреждения, связанные с устаревшими функциями из-за проблем безопасности. Также можно заменить некоторые функции на более безопасные, используя _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES. Однако кто-нибудь знает, можно ли использовать оба одновременно. То есть, если я сначала укажу _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES, а затем _CRT_SECURE_NO_WARNINGS, будут ли заменены те функции, которые можно заменить, а в остальных случаях предупреждения будут подавлены. Я не уверен, как это проверить, потому что, если я добавлю оба, все предупреждения будут эффективно подавлены, но я не знаю, связано ли это только со вторым флагом.
Да, вы можете использовать оба, и они делают именно то, что вы ожидали.
Вы можете взглянуть на crtdefs.h
заголовочный файл Если вы определите _CRT_SECURE_NO_WARNINGS
он просто не генерирует предупреждение вместо _CRT_INSECURE_DEPRECATE
Рекомендации.
_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
контролирует другие макросы, такие как __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_ ...
и так.
Других решений пока нет …