【发布时间】:2019-04-11 14:56:02
【问题描述】:
我已经更新了 gcc 版本,gcc --version 产生以下输出
gcc (Ubuntu 8.1.0-5ubuntu1~16.04) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我可以在头文件中包含文件系统而不会出现任何错误
#include<filesystem>
但是当我尝试像下面那样访问命名空间文件系统时,我得到了错误
namespace fs = std::filesystem;
错误信息
error: ‘filesystem’ is not a namespace-name
namespace fs = std::filesystem;
这似乎很奇怪,因为 gcc 8 支持 std::filesystem 并且它在命名空间中不可用,我在访问 std::filesystem 时做错了吗?
是的,我是用 -std=c++17 构建的
【问题讨论】:
-
你是用
-std=c++17构建的吗(毕竟是C++17的特性)? -
你是用
-std=c++17还是-std=gnu++17编译? -
是的,我用 -std=c++17 构建
-
@Tas 是关于 gcc v7,gcc v8 已经支持 std::filesystem
标签: c++ gcc namespaces