【问题标题】:Which compilers support std::filesystem?哪些编译器支持 std::filesystem?
【发布时间】:2016-05-01 15:55:41
【问题描述】:

感谢 C++11,在与 boost 建立了长期合作关系之后,最后一个让我依赖它的组件是文件系统。根据链接,std::filesystem 似乎被实现为实验性的:Filesystem library

由于它模仿 boost::filesystem,我可以轻松地将我的项目调整为 std 并摆脱巨大的 boost 依赖。哪些编译器支持它,使用它是否重要,即使它是实验性的,因为它模仿了 boost(因为没有时间表来说明何时标准化)?

【问题讨论】:

  • MSVC 是我所知道的唯一一个,这恰好是继续使用 Boost.Filesystem 的一个很好的理由。
  • 更好的问题是:std::filesystem 支持哪些平台/工具链?
  • 请注意,在最终标准化的版本中有limitations对Boost的兼容性。

标签: c++ boost boost-filesystem c++17


【解决方案1】:
  • Visual Studio 已经为几个版本提供了不同版本的文件系统库。我相信 VS 2013 是第一个包含它的版本。
  • libstdc++ 作为 5.3 版本的一部分发布了他们的文件系统库。
  • libc++ 有一个正在开发的文件系统库,但它不会成为即将发布的 3.8 版本的一部分。

请注意,std::experimental::filesystem 还不是 C++ 标准的一部分,而是在技术规范中定义的。这意味着它们在成为标准的一部分之前可能会发生变化。 (这就是为什么它们在 std::experimental 命名空间中)

【讨论】:

  • VS2012 首先发布了它,但是这个实现实在是太可怕了,无法使用。
  • Libc++ 的实现成为 3.9 版本的一部分。
猜你喜欢
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
  • 2019-09-10
  • 2014-07-04
  • 2016-04-01
相关资源
最近更新 更多