На безопасность исключений в функциональном вызове

StackOverflow https://stackoverflow.com/questions/4733224

Вопрос

Это призыв 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 Не имеет значения для точек последовательности, гарантированных в вызовом выражении.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top