rozważmy Mam następującą funkcję:affectations i wyjątki
SomeType createSomeType();
które mogą throw
zależności od pewnych powodów.
Następnie:
SomeType val = SomeType(); // initial value
try
{
val = createSomeType(); // here
}
catch (std::exception&)
{
}
Jeśli createSomeType()
rzuty, zawsze mogę założyć, że val
wartość niezmienione?
Jeśli 'createSomeType' rzutów, będzie ciało operatora przypisania kiedykolwiek być wprowadzone? Jak mogła zmienić wartość w takim przypadku? –
@ Space_C0wb0y: Może się zdarzyć, że ciało nie wyrzuci, ale przeładowane zadanie rzuca. – sharptooth
OP wyraźnie pyta o przypadek, w którym "createSomeType" rzuca, więc operator przypisania nie odgrywa roli (w tym konkretnym scenariuszu). –