c++ - 名称查找失败 - c++ 命名空间
问题描述
您能否解释一下为什么在该代码中名称空间查找失败?
namespace B {
namespace C {
int i;
}
}
namespace A {
namespace B {
void foo() {
// why does not much A::B::C
B::C::i = 3;
}
}
}
是的,我知道 ::B::C::i 有效,因为我们指示全局命名空间,但我很好奇为什么当我们不在 B 之前使用 :: 时查找不会在 B::C 命名空间之外搜索。
提前致谢
解决方案
在名称空间内::A::B
,不合格的查找查找B
名称空间::A::B
而不是找到名称空间::B
。并且没有 name ,因此在 found::A::B::C
中的合格查找失败。C
::A::B
推荐阅读
- css - 一些右对齐的 tabPanels 闪亮
- java - netbeans java检查本地服务是否正在运行
- pyspark - 使用 pyspark 将镶木地板数据写入 csv 时出现“不支持的编码:DELTA_BYTE_ARRAY”
- java - 以编程方式将命令行参数传递给 schemacrawler
- scala - 用户定义的值类给出编译错误
- javascript - 我将如何创建一个反转高阶函数?
- alfresco - CMIS ACL 仅删除用户权限(在 Alfresco 上)
- ffmpeg - 如何使用ffmpeg设置覆盖的不透明度/透明度?
- css - 在不编写 hacky CSS 的情况下,如何确保 1 列网格不会从视口中溢出?
- jquery - flipster.js - onItemSwitch 似乎在我单击当前项目时触发