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