如果我有这样的文件,一切都会按预期进行:
#include <filesystem>
#include <iostream>
int main() {
std::filesystem::path o = "C:\\Windows\\write.exe";
auto s = o.parent_path();
std::cout << s << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果可能,我想使用这样的行:
filesystem::path o = "C:\\Windows\\write.exe";
Run Code Online (Sandbox Code Playgroud)
我试过这个,但我收到一个错误:
// using-declaration may not name namespace 'std::filesystem'
using std::filesystem;
Run Code Online (Sandbox Code Playgroud)
也有错误:
using namespace std::filesystem;
// error: 'filesystem' has not been declared
filesystem::path o = "C:\\Windows\\write.exe";
Run Code Online (Sandbox Code Playgroud)
有可能做我正在尝试的事情吗?
您可以使用命名空间别名,如
namespace filesystem = std::filesystem;
Run Code Online (Sandbox Code Playgroud)
这是一个演示程序
#include <iostream>
namespace A
{
namespace B
{
int x;
}
}
int main()
{
namespace B = A::B;
B::x = 10;
std::cout << B::x << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它的输出是
10
Run Code Online (Sandbox Code Playgroud)