здравствуйте все.
интересуюсь, почему язык поддерживает конструкции вида:
if (const Foo *pFoo = getFoo()) {
//работаем далее с pFoo
}
//здесь уже pFoo нет
но не поддерживает
if ((const Foo *pFoo = getFoo()) == VALUE) {
//работаем далее с pFoo
}
//здесь уже pFoo нет
на подобное натыкаюсь зачастую, и приходится вместо этого писать:
const Foo *pFoo = getFoo();
if (pFoo){
//работает далее с pFoo
}
//здесь уже pFoo нет
но немного не нравится, т.к. по логике сама переменная pFoo нам нужна только в теле блока if, а получается, что в моем последнем примере она будет доступна далее _после_ тела if. или я много хочу?
спасибо за комменты.
"Я женился на первой же женщине, которая обратилась ко мне по мейлу." © Л. Торвальдс