double as true/false

Бьярн предлагает использовать условие в if как ограничение области действия. В частности этот пример.

if ( double d = fd()  ) {
   // d in scope here...
}

Мне любопытно, как интерпретировать объявление в истинном/ложном смысле.

  1. Это декларация.
  2. Это дубль.

Редактировать: Это в 6.3.2.1 Язык программирования C++ в качестве рекомендации.

Edit2: предложение templatetypedefs по указателям, в частности, с динамическим приведением типов, может дать представление о предложении Бьярнса.

SteveJessop говорит мне: - Условие не является выражением, оно также может быть объявлением, используемое значение является оцениваемым значением.

6
задан Captain Giraffe 26 June 2012 в 23:54
поделиться