C++ has parsing ambiguity between a function declaration and a constructor invocation when the constructor arguments are temporaries. This is known as the "most vexing parse" problem. C++09 doesn't resolve this ambiguity but there are several things you can do to avert it in the first place. Awareness is the first step.
当参数是临时变量的时候会出现。
[refer to ]
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=439