Alguien puede haber pensado que estaban construyendo en lugar de fundición. Considere:
some_fun(std::string("Hello"));
Muchas personas piensan que están llamando a un constructor allí cuando de hecho están haciendo un lanzamiento de estilo C. Da la casualidad de que el casting mirará a los constructores del tipo de destino entre la larga lista de otras cosas que observa y, por lo tanto, aquí finalmente termina invocando al constructor.
notación funcional yesos tienen todas las mismas debilidades de la otra clase de C reparto:
- Puede inadvertidamente desechado constness
- silencio puede convertir en una reinterpretar fundido
- son difíciles de diferenciar con grepping herramientas.
Además de todo eso, está realizando exactamente la misma operación en ambos casos.
Cuando 'a' es un' int', 'static_cast (a)', '(double) a', y' double (a) 'son semánticamente idénticos. Las diferencias se hacen evidentes cuando 'a' es algún otro tipo no escalar, o es' const' o 'volátil', etc. –
ildjarn
@ildjarn y desde el punto de vista del rendimiento? –
Idéntico significa idéntico - no hay diferencia alguna. – ildjarn