VS2017: пространство имен E0135 "std" не имеет члена "файловая система"

Чтобы использовать: std:: filesystem из библиотеки C++17, мой проект был перенесен с vs2015 на vs2017.

Мой проект компилируется и запускается без ошибок, библиотека включена без ошибок, но при попытке использовать std:: filesystem я получаю следующее:

Кажется, библиотека не включена, но не вижу, почему нет?

Редактировать:

Microsoft Visual Studio Enterprise 2017

VisualStudio.15.Release/15.7.3+27703.2026

Visual C++ 2017 00369-90000-00000-AA466

Microsoft Visual C++ 2017

2 ответа

Решение

Пара вариантов для расследования.

  • Проверьте стандарт языка. Вам нужен C++17 или выше: введите описание изображения здесь введите описание изображения здесь
  • Если ваша версия Visual Studio не поддерживает std::filesystem тем не менее, вы можете попробовать std::experimental::filesystem,

У меня есть следующая версия и std::filesystem работает (с выбором языка C++17, показанным выше):

Microsoft Visual Studio Community 2017 Preview
Version 15.8.0 Preview 1.1
VisualStudio.15.Preview/15.8.0-pre.1.1+27705.2000

У меня была обычная проблема, эта файловая система не распознавалась как член std только для среды Linux (в Windows это было нормально).

Для меня добавление #include <filesystem> в файле .hpp также решила проблему (хотя теоретически мне это не нужно было включать).

Другие вопросы по тегам