首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >using-声明不能命名命名空间

using-声明不能命名命名空间
EN

Stack Overflow用户
提问于 2020-09-05 15:32:37
回答 1查看 208关注 0票数 2

如果我有一个这样的文件,一切都会按预期运行:

代码语言:javascript
复制
#include <filesystem>
#include <iostream>
int main() {
   std::filesystem::path o = "C:\\Windows\\write.exe";
   auto s = o.parent_path();
   std::cout << s << std::endl;
}

但是,如果可能的话,我想使用下面这样的一行:

代码语言:javascript
复制
filesystem::path o = "C:\\Windows\\write.exe";

我尝试这样做,但得到一个错误:

代码语言:javascript
复制
// using-declaration may not name namespace 'std::filesystem'
using std::filesystem;

这也是一个错误:

代码语言:javascript
复制
using namespace std::filesystem;
// error: 'filesystem' has not been declared
filesystem::path o = "C:\\Windows\\write.exe";

有没有可能做我正在尝试的事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-05 15:45:53

您可以使用名称空间别名,如

代码语言:javascript
复制
namespace filesystem = std::filesystem;

这是一个演示程序

代码语言:javascript
复制
#include <iostream>

namespace A
{
    namespace B
    {
        int x;
    }
}

int main() 
{
    namespace B = A::B;
    
    B::x = 10;
    
    std::cout << B::x << '\n';
    
    return 0;
}

它的输出是

代码语言:javascript
复制
10
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63751519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档