0

最近、RAII の素晴らしいメモリ管理手法について学びました。これは、数年前に学校で学んだ新規作成/削除の頭痛の種よりもはるかにクリーンなようです (その間、C++ はあまり見ていませんでした)。

この優れた手法がいつ C++ に追加されたのかを突き止めようとしています。それはいつもそこにあったのに、メモを見逃しただけですか? RAII をサポートする C++ 標準の最も古いバージョンは何ですか?

[更新: これが理想的な SO の質問ではない理由がわかりました。与えられた答えが正しいかどうかを確認する実際的な方法はありません! とはいえ、私はまだ答えを知りたいと思っており、多数意見は正しいと思います。

私が聞いているのは、それは常にそこにあったということです。これは真実であることに疑いの余地はありませんが、私の古い教科書のどれもそれについて言及していないのはなぜですか? 手元にある Meyers の「Effective C++ 2nd edition」を確認したところ、今夜古いテキストを確認します。この用語は最近造られたばかりで、この技術はずっと前から存在していたのでしょうか?]

4

3 に答える 3

3

「RAII」という用語がいつ作られたのか正確にはわかりません。しかし、この手法自体は、1979 年頃に発明された瞬間から C++ に存在していました。

C++ ISO 標準の最初のバージョンは、1998 年に公開されました。

于 2013-11-01T03:59:25.977 に答える
2

Stroustrup が RAII を発明したというウィキペディアの主張は、1994 年に出版された彼の著書Design and Evolution of C++への言及によって裏付けられています。

確認できるコピーはありませんが、少なくとも今回のものと思われます。

于 2013-11-01T04:00:50.903 に答える
2

自動デストラクタ呼び出しでスコープ変数を持つすべての言語は、RAII を実行できます。C++には、変数が宣言されているスコープを実行が離れるときにデストラクタを呼び出すという最初からこの概念がありましたが、最初からC++にありました。

于 2013-11-01T03:58:08.070 に答える