【发布时间】:2015-06-24 16:39:17
【问题描述】:
struct A{};
int A;
struct A a;
struct A::A b;
上面的最后两个声明是等价的。它们都声明了 A 类型的对象。在标准中我可以在哪里找到或推断出这个?
【问题讨论】:
-
我认为可能存在最后两个不等价的情况......
-
您是否在寻找第二个中使用的注入的类名的规范?或者 详细类型名称
struct A明确指代类型而不是变量的规范? -
@MooingDuck:确实,如果有一个命名空间
A包含一个不同的类A,那么第二个将表示这一点。 -
@Columbo:I disagree。您不能在与类相同的范围内声明命名空间,但可以使用
using将其引入范围内。 -
@Columbo:适合 Clang。不幸的是,星期五太晚了,我不在乎哪个是正确的。
标签: c++ language-lawyer c++14