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 также решила проблему (хотя теоретически мне это не нужно было включать).