質問

の呼びかけです 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());
}

言い換えれば、1番目と2番目の原子性に関しては、違いを生みますか auto_new() 関数呼び出し2つの関数がインラインな場合は?

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top