Być może jestem zardzewiały (pisałem ostatnio w Pythonie).co jest złego w deklarowaniu zmiennej w warstwie if?
Dlaczego to się nie kompiluje?
if ((int i=f()) == 0)
bez ()
wokół int i=f()
I dostać inny, o wiele bardziej rozsądne błąd i
nie jest logiczna. Ale właśnie dlatego chciałem nawiasów w pierwszej kolejności!
Domyślam się, że użycie nawiasów czyni go wyrażeniem, a deklaracje deklaracji nie są dozwolone w wyrażeniu. Czy to prawda? A jeśli tak, czy jest to jeden z dziwactw składniowych C++?
BTW, ja rzeczywiście próbuje to zrobić:
if ((Mymap::iterator it = m.find(name)) != m.end())
return it->second;
Co jest nie tak? Wszystko –
@VJovic - Błądzę, jeśli uzyskałeś swoją reputację dzięki tak wyszukanym, pomocnym odpowiedziom;) – davka
Nie, chciałbym pójść negatywnie;) Ale poważnie, normalne standardy kodowania zabraniają takiego niejasnego kodu. –