На безопасность исключений в функциональном вызове
-
12-10-2019 - |
Вопрос
Это призыв f()
За исключением безопасного?
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());
}
Другими словами, имеет ли это какое -либо значение, когда дело доходит до атомичности первого и второго auto_new()
Вызовы функций, если эти две функции встроены?
Решение
Да, это исключение безопасно; нет, inline
Не имеет значения для точек последовательности, гарантированных в вызовом выражении.
Не связан с StackOverflow