C++:当前命名空间是否覆盖其他命名空间
C++: Does current namespace override other namespaces
我正在编写一个包含内容的库:
namespace david {
typedef enum {
BAR
} CommonEnum;
class Foo {
void fooBar () {
std::cout << BAR << std::endl;
}
}
}
假设用户编写文件
typedef enum {
BAR = 1
} CommonEnum;
#include <david.h>
Foo myFoo();
myFoo.fooBar();
将打印什么?如果将打印0
,是否可靠?我知道我可以在david::Foo
中加上BAR
的前缀,这样它就会读david::BAR
,这肯定会回答这个问题(这就是我目前正在做的),但它变得非常冗长,我试图坚持80个字符的限制,这意味着我的代码越来越难以阅读。
在namespace david
中具有类Foo
和枚举BAR
void fooBar () {
std::cout << BAR << std::endl;
}
将CCD_ 8解析到最内部的适用范围。因此
typedef enum {
BAR = 1
} CommonEnum;
不会"覆盖"来自namespace david
的定义。
相关文章:
- 是否可以将函数导入命名空间,但不能导出它?
- VS2017 是否更改了 C++ 中访问 C# 命名空间的方式?
- C++ - 是否将常量幻数放入命名空间
- 初始化命名空间中的变量是否类似于将它们初始化为类成员?
- 是否将命名空间范围文件本地 (.cpp) 常量放在匿名命名空间中
- c++ 内联友元函数是否会导致命名空间之间的名称隐藏?
- 将以"_[a-z0-9]"开头和"using"的标识符导入全局命名空间是否定义良
- 是否可以在相同的命名空间中,但在不同的嵌套项目中定义具有相同名称的类
- 是否可以在 c ++ 中查看命名空间的所有内容?
- 是否有 GCC 警告,用于使用 C 库中的符号而不是通过命名空间 std?
- 是否有一个很好的方法可以在C 11中打印出像JSON一样的Trie结构(仅迭代解决方案)的扁平命名空间
- 使用显式命名空间限定符时模板实例化行为是否发生变化?
- 调用 ADL 时,表达式和命名空间之间是否会发生冲突
- winrt 命名空间是否具有控制台函数?
- 一个命名空间是否可以是另一个命名空间的成员
- 命名空间是否可以用作C++中的对象模板
- 在匿名命名空间中使用命名空间是否安全
- 隐藏第三方命名空间是否危险
- C++:当前命名空间是否覆盖其他命名空间
- c ++命名空间是否有类似".."?