1

bada C ++スタイルガイド/アーキテクチャは、C++オブジェクトの2段階の初期化を使用します。

なぜそれらは単にscoped_ptrの使用を必要としなかったのですか?

4

2 に答える 2

4

私は超能力者ではないので、あなたは彼らに尋ねるべきです。

しかし、彼らの答えは、そのページの上部近くに太字で書かれているものと同じだと思います。「2段階の構築がないと、リソースリークが発生します」。

しかし、私はこの評価に同意しません。本当の問題は、ComplexClassコンストラクター本体が例外安全ではないことです。これが適切に行われると、コードは、特にスケーリングするときに、単純なRAIIではるかに堅牢になります。

「なぜ彼らは単にscoped_ptrを必要としなかったのか」という点で:サードパーティのライブラリではなく、C++について話しているのはC++03ドキュメントだと思います。

于 2011-11-09T10:07:23.427 に答える
0

スコーピングは、2フェーズ構造の理由ではありません。コンストラクターには例外以外のエラーを返す方法がなく、例外を使用していないという事実があります(IMHOの唯一の理由は、それがまだ10年前であると考えていることです)。

于 2011-11-09T11:14:52.407 に答える