Возможно, я становлюсь ржавым (недавно писал на Python).
Почему это не компилируется?
if ( (int i=f()) == 0)
без ()
вокруг int i=f()
я получаю другую, гораздо более разумную ошибку i
не является логическим. Но вот почему я хотел скобок в первую очередь!
Мое предположение заключалось бы в том, что использование круглых скобок делает его выражением, и это выражение объявления не допускается в выражении. Это так? И если да, является ли это одним из синтаксических особенностей С++?
Кстати, я действительно пытался это сделать:
if ( (Mymap::iterator it = m.find(name)) != m.end())
return it->second;