VS2017: E0135 命名空间 "std" 没有成员 "filesystem"

VS2017: E0135 namespace "std" has no member "filesystem"

为了使用:std::filesystem 来自 C++17 库,我的项目从 vs2015 迁移到 vs2017。

我的项目编译和运行没有错误,包含了 lib 没有错误,但是当尝试使用 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

有几个选项可供调查。

  • 检查语言标准。你需要 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

我有一个常见问题,即 filesystem 未被识别为 std 成员,仅用于 Linux 环境(在 Windows 很好)。

对我来说,在 .hpp 文件中添加 #include <filesystem> 也解决了这个问题(虽然理论上,我不需要这个包含)。