我想知道为什么在以下代码中找不到命名空间filesystem
:
g ++ -std = c ++ 17 main.cpp -lstdc ++
// #include <filesystem> <- error, so changed to the following:
#include <experimental/filesystem>
namespace fs = std::filesystem;
int main()
{
return 0;
}
错误:
main.cpp:3:21: error: ‘filesystem’ is not a namespace-name
namespace fs = std::filesystem;
^
main.cpp:3:31: error: expected namespace-name before ‘;’ token
namespace fs = std::filesystem;
gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.5)
答案 0 :(得分:7)
在GCC 5.4发布时,文件系统库尚未在std::filesystem
命名空间中实现。它,以及任何其他&lt; experimental /...>该版本中包含的标头位于std::experimental
命名空间中。
答案 1 :(得分:6)
<exprimental/..>
表示实验名称空间:
namespace fs = std::exprimental::filesystem;