Bjarne sugiere usar la condición en ifs como restricción de ámbito. En particular este ejemplo.double as true/false
if (double d = fd() ) {
// d in scope here...
}
Soy curioso cómo interpretar la declaración en un sentido verdadero/falso.
- Es una declaración
- Es un doble.
Edit: Está en 6.3.2.1 El lenguaje de programación C++ como una recomendación.
Edit2: templatetypedefs sugerencia de punteros, en particular con moldes dinámicos, podría dar una idea de la sugerencia de Bjarnes.
SteveJessop me dice: - Una condición no es una expresión, también puede ser una declaración, el valor utilizado, es el valor que se evalúa.
La respuesta a [esta pregunta] (http://stackoverflow.com/q/9833790/636019) responderá a su pregunta también. – ildjarn
Acabo de leer la sección de la que estás hablando y salí con la sensación de que la discusión era más sobre usarla como restricción de alcance (y obtener el beneficio adicional del código compacto) y no tenía mucho que ver con el tipo de datos específico Creo que pudo haber reemplazado 'double' con' int' y todavía consiguió su mensaje intencionado. Sin embargo, así es como lo leí. – jedwards
@jedwards Sí, pero el uso del doble está pidiendo una respuesta. Una declaración int es todavía una anomalía que merece una respuesta. –