3

呼び出しは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()つまり、 2 つの関数がインラインである場合、1 番目と 2 番目の関数呼び出しのアトミック性に違いはありますか?

4

1 に答える 1

5

はい、例外セーフです。いいえ、inline呼び出し式で保証されているシーケンス ポイントに違いはありません。

于 2011-01-19T08:43:23.360 に答える