Почему std::basic_ifstream Visual Studio считает deprecated? C++

Есть такой простейший код:

std::basic_ifstream<char16_t> stream{"path"};

И вижла не дает скомпилировать код, потому что внутри std::basic_filebuf используется std::codecvt, который deprecated. Ошибку выдает такую:

warning C4996: 'std::codecvt<char16_t,char,mbstate_t>': warning STL4020: std::codecvt<char16_t, char, mbstate_t>, std::codecvt<char32_t, char, mbstate_t>, std::codecvt_byname<char16_t, char, mbstate_t>, and std::codecvt_byname<char32_t, char, mbstate_t> are deprecated in C++20 and replaced by specializations with a second argument of type char8_t. You can define _SILENCE_CXX20_CODECVT_FACETS_DEPRECATION_WARNING or _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS to acknowledge that you have received this warning.

Я не смог решить проблему и попытался хотя бы заглушить варнинги, сделав так, как вказано в сообщении, но это не помогло:

#define _SILENCE_CXX20_CODECVT_FACETS_DEPRECATION_WARNING

Как решить эту проблему?


Ответы (0 шт):