这是多么令人烦恼的解析?
How is this a most vexing parse?
我正在经历这个article
并且在第 3 项中有一个声明说
// C++98
rectangle w( origin(), extents() ); // oops, vexing parse
以上是多么令人头疼的解析。如果我做了这样的事情
struct origin
{
};
struct Rectangle
{
Rectangle(const origin& s)
{
}
};
声明
Rectangle s(origin());
工作正常,不像一个令人烦恼的解析。
为什么作者说这是一个令人讨厌的解析。是错字还是我遗漏了什么?
Rectangle s(origin());
也是一个令人烦恼的解析。它声明了一个函数 s
,其中 returns rectangle
,并将返回 origin
的函数指针作为参数指针。不确定 "works fine".
是什么意思
rectangle w( origin(), extents() );
声明一个函数 w
返回 rectangle
并接受参数:指向函数返回 origin
的指针和指向函数返回 extents
的指针。
有关 see this question or browse the other questions under the most-vexing-parse 标签的更多详细信息。
我正在经历这个article
并且在第 3 项中有一个声明说
// C++98
rectangle w( origin(), extents() ); // oops, vexing parse
以上是多么令人头疼的解析。如果我做了这样的事情
struct origin
{
};
struct Rectangle
{
Rectangle(const origin& s)
{
}
};
声明
Rectangle s(origin());
工作正常,不像一个令人烦恼的解析。 为什么作者说这是一个令人讨厌的解析。是错字还是我遗漏了什么?
Rectangle s(origin());
也是一个令人烦恼的解析。它声明了一个函数 s
,其中 returns rectangle
,并将返回 origin
的函数指针作为参数指针。不确定 "works fine".
rectangle w( origin(), extents() );
声明一个函数 w
返回 rectangle
并接受参数:指向函数返回 origin
的指针和指向函数返回 extents
的指针。
有关 see this question or browse the other questions under the most-vexing-parse 标签的更多详细信息。