首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++17支持Eclipse

C++17支持Eclipse
EN

Stack Overflow用户
提问于 2017-05-18 09:51:55
回答 2查看 3.4K关注 0票数 6

我读过这里,C++17是功能完整的,尽管规范还没有完全准备好。如何在代码中使用C++17特性,特别是在Eclipse (Neon)中?

具体来说,我想使用filesystem来轻松地遍历目录。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-18 13:25:07

在最近的版本中,libc++和libstdc++都有std::experimental::filesystem。我不知道直接使用std::filesystem;C++17还没有发布,这似乎是合理的。

boostboost::filesystem,它有几种不同的地方,但结构几乎相同。使用boost::filesystem编写的代码可以相对容易地移植到std::filesystem

作为不兼容性的一个例子,boost有一个单数标志枚举,而std有一个带有更多设置的复数标志enum位字段。

您可能必须将-std=c++1z传递给编译器,检查您的libc++libstdc++版本,切换您正在使用的版本,安装新版本等,或者安装boost,并使用C++17s所基于的文件系统库。

票数 7
EN

Stack Overflow用户

发布于 2017-08-10 13:34:39

尽管std::filesystem计划随C++17一起运行,但是当前的编译器实现还没有提供“官方”C++17支持。正如牦牛在他的回答中已经指出的,最近的编译器和标准C++库版本都有std::experimental::filesystem

至少对于GNU编译器g++,我可以说您甚至不需要设置C++17语言方言,使用C++14就足够了!但是,还需要链接(静态)库libstdc++fs.a

此外,定义std::filesystem命名空间也非常方便,这样您就可以使用标头(几乎),就好像它们已经完成一样:

代码语言:javascript
复制
// ...

#include <experimental/filesystem>
namespace std {
    namespace filesystem = std::experimental::filesystem;
}

// now use std::filesystem ...

总结如下:

  • 让eclipse使用c++1y (C++14)方言,这就足够了
  • 链接libstdc++fs.a
  • 包括<experimental/filesystem>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44044404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档