我想知道为什么在以下代码中,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;
}
Run Code Online (Sandbox Code Playgroud)
错误:
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;
Run Code Online (Sandbox Code Playgroud)
gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.5)
<exprimental/..> 表示实验名称空间
namespace fs = std::exprimental::filesystem;
Run Code Online (Sandbox Code Playgroud)
请参阅:http://en.cppreference.com/w/cpp/experimental/fs/path
GCC 5.4.0于2016年6月发布; 在采用C++ 17标准之前一年多.它及其libstdc ++版本对C++ 17的支持非常有限.你可以看到,当GCC加入C++语言17功能在这里当的libstdc ++加入C++ 17层标准库的功能在这里.
在GCC 5.4发布时,文件系统库尚未在std::filesystem命名空间中实现.它与该版本中包含的任何其他<experimental/...>标头一起位于std::experimental命名空间中.
| 归档时间: |
|
| 查看次数: |
8143 次 |
| 最近记录: |