也许我越来越生疏了(最近一直在用 Python 写)。
为什么这不编译?
if ( (int i=f()) == 0)
没有()
周围的int i=f()
我得到另一个更合理的错误i
不是布尔值。但这就是为什么我首先想要括号!
我的猜测是使用括号使其成为表达式,并且表达式中不允许声明语句。是这样吗?如果是,它是 C++ 的语法怪癖之一吗?
顺便说一句,我实际上是在尝试这样做:
if ( (Mymap::iterator it = m.find(name)) != m.end())
return it->second;