我当然会缺少一些东西,但是我不明白为什么会这样编译(同时使用g ++和clang ++):
struct A
{
};
struct B
{
};
int main()
{
A a(B);
}
首先,B
是一个类型……不是一个值。我应该如何解释此代码?
37
这被称为“ 最
—
令人烦恼的
@alterigel真的吗?在这种情况下,没有歧义。它只能是一个函数声明。
—
胡桃木
A a(B());
可能不是变量定义或函数声明。
@alterigel-这不是最烦人的解析。查看您链接到的页面上的示例。这只是一个函数声明。
—
皮特·贝克尔,
@PeteBecker,可能最好解释一下为什么这不是MVP,而不仅仅是断言它不是MVP,我认为胡桃木已经在上面做了。
—
JPhi1618