首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在使用make和g++生成的代码中使用std::filesystem

无法在使用make和g++生成的代码中使用std::filesystem
EN

Stack Overflow用户
提问于 2021-05-01 14:42:41
回答 1查看 57关注 0票数 0

我在使用make构建我的c++应用程序时遇到了一些问题。我有这样的c++代码:

代码语言:javascript
复制
#include <string>
#include <iostream>
#include <filesystem>

using namespace std;

namespace fs = std::filesystem;

int main()
{
    auto iter = fs::directory_iterator(fs::current_path());
    while(iter._At_end())
    {
        cout << iter->path() << endl;
    }
    return 0;
}

我尝试使用命令:g++-9 -std=c++17 -Wall -Wextra -pthread -lstdc++fs -c -o main.o main.cpp编译目标文件,但出现以下错误:

代码语言:javascript
复制
main.cpp:12:16: error: ‘class std::filesystem::__cxx11::directory_iterator’ has no member named ‘_At_end’
   12 |     while(iter._At_end())
      |                ^~~~~~~

所以,我不能使用std::filesystem命名空间的类的成员,但是如果我只想使用class(例如std::filesystem::path),那么一切都是可以的。

软件的版本:

代码语言:javascript
复制
g++-9 (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
GNU Make 4.2.1

希望你能帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-01 14:58:28

只要不使用_At_end(),一切都会好起来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67343574

复制
相关文章

相似问题

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