В чем проблема файла std lib facilities.h?

Когда использую заголовочный файл из книги Страуструпа "std_lib-facilities.h" возникает ошибка следующего характера:
error C2338: is deprecated and will be REMOVED. Please use . You can define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning.
В чем проблема?
  • Вопрос задан
  • 2334 просмотра
Решения вопроса 2
@Mercury13
Программист на «си с крестами» и не только
Проблема в подключённом к нему файле hash_list или hash_map (они никогда не были стандартом Си++, но по факту их многие реализовывали, с двумя разными стандартами — один от SGI, второй переименованный вошёл в STL).
Переименуйте в unordered_list, unordered_map. И надейтесь, что третий и далее параметры шаблонов не использовались.

Существуют версии этого файла, откорректированные под C++11.

А можно заглушить ошибку, добавив в «#defines» проекта _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS. И будьте готовы, что в один прекрасный день вы обновите компилятор и хватитесь этого файла.
Ответ написан
Комментировать
@MiiNiPaa
Мои психические способности подсказывают, что ошибка говорит про "hash_map" (Серьёзно, сложно перечитать свой вопрос после публикации и поправить косяки?).

Это происходит, потому что MS удаляет этот нестандартный и устаревший заголовочный файл из поставки в будущем. Можно нормально переписать файл, дождаться обновления от Страуструпа, скачать исправленный файл из интерента или сделать то, что предлагает текст ошибки и добавить перед включением std_lib_facilities.h define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 2 500 до 5 000 $
СберТех Москва
До 400 000 ₽
Aporia Севастополь
от 100 000 до 250 000 ₽
21 мая 2024, в 16:29
1500 руб./за проект
21 мая 2024, в 16:14
80000 руб./за проект