2012-01-17 62 views
4

私はいくつかの標準コンテナの例外安全性を見るためのオンライン参照を探しています。std :: vectorの状態std :: bad_allocの後

std::vectorの場合、push_backコールの前の状態を維持しますか?私はベクトルがまだ有効である(デストラクタが呼び出されていない)すべてのオブジェクトを持っていると仮定します。 push_backがstd::bad_alloc例外をスローした後に保証される保証std::vector

答えて

7

スローすると、ベクトルは変更されません。 capacity()さえありません。

[container.requirements.general]によれば、特に断りのない限り

この 句で定義されているすべてのコンテナタイプ(23.2.4.1、23.2.5.1、23.3.3.4、および23.3.6.5を参照されたいです)以下の追加要件を満たす:

[...]

- 例外が一back()またはpush_front()関数によってスローされた場合、その関数は影響を与えません。

関連する問題