Auf Exception-Sicherheit in einem Funktionsaufruf
-
12-10-2019 - |
Frage
Ist der Aufruf von f()
exception-sicher?
inline std::auto_ptr<C> auto_new() {
return std::auto_ptr<C>(new C());
}
void f(std::auto_ptr<C> p1,
std::auto_ptr<C> p2);
// ...
{
f(auto_new(), auto_new());
}
Mit anderen Worten, macht es einen Unterschied, wenn es um die Unteilbarkeit der ersten und zweiten auto_new()
Funktionsaufrufe kommt, wenn die beiden Funktionen inline sind?
Lösung
Ja, es ist sicher Ausnahme; nein, macht inline
keinen Unterschied zu den Sequenzpunkten in dem anrufenden Ausdruck gewährleistet.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow