おそらく私は錆びてきています(最近Pythonで書いています)。
なぜこれがコンパイルされないのですか?
if ( (int i=f()) == 0)
()周りがなければ、int i=f()私は別の、はるかに合理的なエラーiがブール値ではないことを取得します。でも、そもそもかっこが欲しかったのです!
私の推測では、括弧を使用すると式になり、式で宣言ステートメントを使用することはできません。そうですか?もしそうなら、それはC ++の構文の癖の1つですか?
ところで、私は実際にこれをやろうとしていました:
if ( (Mymap::iterator it = m.find(name)) != m.end())
return it->second;