Questions tagged «namespaces»

命名空间是提供标识符上下文的容器,标识符在其中是唯一的。

5
C ++中未命名名称空间的使用
什么时候在C ++中使用未命名的命名空间?从某种意义上说,它比独立功能更好吗?另外,应该仅在源文件中使用它,而不在头文件中使用它吗?
69 c++  namespaces 

5
为什么我的日志在std名称空间中?
在下面的代码中,我定义了一个平凡的log函数。在main我尽量不叫它; 我打电话std::log。然而,我自己log被称为;然后我看到“日志!” 在屏幕上。有人知道为什么吗?我使用G ++ 4.7和clang ++ 3.2。 #include <iostream> #include <cmath> double log(const double x) { std::cout << "log!\n"; return x; } int main(int argc, char *argv[]) { std::log(3.14); return 0; }

7
有什么方法可以使Visual Studio停止缩进名称空间?
Visual Studio一直尝试使名称空间内的代码缩进。 例如: namespace Foo { void Bar(); void Bar() { } } 现在,如果我手动取消缩进,那么它将保持这种状态。但是不幸的是,如果我在前面添加一些内容void Bar();(例如评论),VS将继续尝试使其缩进。 太烦人了,基本上因为这个唯一的原因,我几乎从不使用C ++中的名称空间。我不明白为什么它会尝试缩进它们(整个文件缩进1个甚至5个制表符的意义是什么?),或者如何使其停止。 有没有办法停止这种行为?配置选项,加载项,注册表设置,甚至直接修改devenv.exe的黑客。

2
复制构造函数中的C ++名称空间冲突
我有以下代码: namespace A { struct Foo { int a; }; } struct Foo { int b; }; struct Bar : public A::Foo { Bar(Foo foo) { c = foo.b; } int c; }; C ++编译器抱怨“ c = foo.b”,因为A :: Foo没有名为b的成员。如果我用:: Foo更改Bar参数的类型,它将起作用。 我的问题是此行为背后的原因是什么(我想这与继承使Bar进入A名称空间这一事实有关,但是我找不到任何文档来支持该理论。

2
有哪些名称空间,有哪些规则?
注意:这个问题是关于name space,不是namespace。 C ++标准引用了name space,但是我没有看到它的定义。该标准说标签和宏位于不同的名称空间中。所有其他引用name space都在C / C ++兼容性部分中,如下所示(当前草案): 这是C和C ++之间少数可归因于新的C ++名称空间定义的不兼容性之一,在新的C ++名称空间定义中,名称可以在单个作用域中声明为类型和非类型,从而导致非类型名称隐藏类型名称,并要求使用关键字class,struct,union或enum来引用类型名称。这个新的名称空间定义为C ++程序员提供了重要的符号方便,并有助于使用户定义类型的使用与基本类型的使用尽可能相似。 这个新的名称空间定义是什么?在标准中哪里可以找到它?确切的规则是什么?规则似乎比“非类型隐藏类型”更复杂。就像,这不会编译: typedef int Foo; // Foo is a type void Foo(); // not a type, but compile error, instead of hiding 但这确实是: struct Foo { }; // Foo is a type as well void Foo(); // …
9 c++  namespaces 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.