Бьярн предлагает использовать условие в if как ограничение области действия. В частности этот пример.
if ( double d = fd() ) {
// d in scope here...
}
Мне любопытно, как интерпретировать объявление в истинном/ложном смысле.
Редактировать: Это в 6.3.2.1 Язык программирования C++ в качестве рекомендации.
Edit2: предложение templatetypedefs по указателям, в частности, с динамическим приведением типов, может дать представление о предложении Бьярнса.
SteveJessop говорит мне: - Условие не является выражением, оно также может быть объявлением, используемое значение является оцениваемым значением.