Estoy un poco confundido después de leer algo en un libro de texto. En cuanto al código:¿Es esto un yeso o una construcción?
void doSomeWork(const Widget& w)
{
//Fun stuff.
}
doSomeWork(Widget(15));
doSomeWork()
toma un parámetro const Widget&
. El libro de texto, Effective C++ III, establece que esto crea un objeto Widget temporal para pasar a doSomeWork. Se dice que este puede ser reemplazado por:
doSomeWork(static_cast<Widget>(15));
ya que ambas versiones son moldes - la primera es sólo una conversión de estilo de función C al parecer. Yo hubiera pensado que Widget(15)
invocaría un constructor para el widget tomando un parámetro entero.
¿Se podría ejecutar el constructor en este caso?
@Constantinius: ¿Qué hay de malo aquí? – AnT
He editado su respuesta. –