对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()
函数调用的原子性时,它是否有任何区别?
答案 0 :(得分:5)
是的,这是例外的安全;不,inline
对调用表达式中保证的序列点没有任何影响。