c++ - std::在 C++/17 中没有成员 "filesystem"

标签 c++ std-filesystem

我正在尝试包括 <filesystem> ,但是当我使用命名空间时,它显示此错误:

std::没有成员“文件系统”

我知道以前是<experimental/filesystem>命名空间是 std::experimental::filesystem;

但是,当我这样做时,它也会给出这样的错误:

    #error The <experimental/filesystem> header providing std::experimental::filesystem is deprecated by Microsoft \
and will be REMOVED. It is superseded by the C++17 <filesystem> header providing std::filesystem. \
You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to acknowledge that you have received this warning.

我正在使用 Visual Studio 2019,并且 C/C++ 语言设置设置为最新版本。

那么是什么导致了这个问题呢?

编辑 1:所有导致错误的代码:

#include <iostream>
#include <Windows.h>
#include <filesystem>

namespace fs = std::filesystem;

int main() {

    return 0;
}

编辑 2:所有代码,旧的,也有错误:

#include <iostream>
#include <Windows.h>
#include <experimental/filesystem>

namespace fs = std::experimental::filesystem;

int main() {


    return 0;

}

编辑 3:Visual Studio 2019 项目配置设置 -> 常规属性:

平台工具集:Visual Studio 2019 (v142) C++ 语言标准:ISO C++17 标准 (std::c++17) Windows SDK 版本 10.0(最新安装的版本)

最佳答案

经过10个小时的奋斗,我得到了答案。我会把它发布给以后遇到同样问题的人;

在我的例子中,Visual Studio 配置设置仅在 x86 配置中设置,因此将配置设置为所有配置,然后使用以下步骤:

1- Project properties -> configuration properties -> general -> 并将语言标准设置为“C++ Language Standart: ISO C++17 Standart (std::c++17)”

2- 项目属性 -> C/C++ -> 语言 -> 并将语言标准设置为“C++ Language Standart: ISO C++17 Standart (std::c++17)”

3-(最重要的)项目属性 -> C/C++ -> 命令行 -> 附加选项,粘贴:/Zc:__cplusplus

关于c++ - std::在 C++/17 中没有成员 "filesystem",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64042721/

相关文章:

C++:如何测试编译错误以检查约束

c++ - 为 boost::dynamic_bitset 生成哈希并将哈希转换回 boost::dynamic_bitset

c++ - C++ 中 *--end() 是什么意思?

C++ 中止核心在执行结束时转储

c++ - 将 PIMPL 与单例和 auto_ptr 结合使用

c++ - 使用 std::filesystem 替换文件

c++ - 如何在不打开文件的情况下测试文件是否被锁定和/或只读?

c++ - directory_entry 的输出与具有变体的类的重载 ostream 运算符<< 冲突

c++ - 默认初始化抛出异常