我最近了解了RAII的精彩内存管理技术,它似乎比我多年前在学校学到的新/删除头痛要清晰得多(在这几年中我没有看过很多C ++)。
我正在尝试追踪何时将这项伟大的技术添加到C ++中。是不是总是在那里而我错过了备忘录?什么是支持RAII的最古老的C ++标准版本?
[更新:好的我现在意识到为什么这不是一个理想的问题 - 我没有实际的方法来验证任何给定的答案是否正确!尽管如此,我仍然非常有兴趣了解答案,我认为多数意见都是正确的。
我听到的是,它一直存在,我不怀疑是真的,但是问我的旧书怎么也没有提到它?我刚刚查看了Meyers的Effective C ++第二版,我很方便,并将在今晚查看较旧的文本。也许这个词最近才被创造出来,而这项技术很久以前就存在了?]
答案 0 :(得分:3)
完全是术语" RAII"被创造出来,我不确定。但是从大约1979年发明的那一刻起,这种技术本身就存在于C ++中。
C ++ ISO标准的第一个版本于1998年发布。
答案 1 :(得分:2)
任何使用自动析构函数调用作用域变量的语言都可以执行RAII。 C ++从一开始就有这个概念,当执行离开声明变量的范围时,从一开始就调用析构函数。
答案 2 :(得分:2)
维基百科声称Stroustrup发明了RAII,并在1994年出版了他的书Design and Evolution of C++的参考资料。
我没有要检查的副本,但它似乎至少从这个时间开始。