Vamos a considerar tengo la siguiente función:y excepciones
SomeType createSomeType();
que puede throw
dependiendo de algunas razones.
continuación:
SomeType val = SomeType(); // initial value
try
{
val = createSomeType(); // here
}
catch (std::exception&)
{
}
Si createSomeType()
tiros, puedo suponer que siempre val
valor es sin cambios?
Si 'lanza createSomeType', nunca se entró en el cuerpo del operador de asignación? ¿Cómo podría cambiar el valor en ese caso? –
@ Space_C0wb0y: Puede suceder que el cuerpo no arroje, pero arroja la asignación sobrecargada. – sharptooth
El OP explícitamente pregunta por el caso cuando 'createSomeType' lanza, por lo que el operador de asignación no desempeña un papel (en ese escenario específico). –