En C ++, ¿cuáles son las diferencias entre static_cast <double> (a) y double (a)?

¿Cuáles son las diferencias entre

<code>int a;
// a gets some value
double pi = static_cast<double>(a)/3;
</code>

y

<code>int a;
// a gets some value
double pi = double(a)/3;
</code>

¿Alguna vez has visto este último? Me parece que lo vi en un fragmento escrito por Stroustrup pero no puedo encontrar la referencia.

Respuestas a la pregunta(4)

Su respuesta a la pregunta