Недавно я узнал о прекрасной методике управления памятью RAII, которая кажется настолько чище, чем новая/удаленная головная боль, которую я изучил в школе несколько лет назад (я не смотрел много C++ в течение прошедших лет).
Я пытаюсь отследить, когда эта замечательная техника была добавлена в C++. Это всегда было, и я просто пропустил записку? Какая самая старая версия стандарта C++, которая поддерживает RAII?
[UPDATE: OK. Теперь я понимаю, почему это не идеальный вопрос SO. У меня нет практического способа проверить, правильно ли подтвержден какой-либо ответ! Тем не менее мне все еще очень интересно узнать ответ, и я полагаю, что мнение большинства будет верным.
Я слышу, что он всегда был там, и я не сомневаюсь, что это правда, но возникает вопрос, почему ни одна из моих старых текстовых книг не упоминает об этом? Я только что проверил Meyers "Эффективное C++ 2-е издание, которое мне удобно, и проверит старые тексты сегодня вечером. Может быть, этот термин был только недавно придуман, а техника существовала задолго до?]
Когда именно был придуман термин "RAII", я не уверен. Но сама техника существовала в C++ с момента ее изобретения, около 1979 года.
Первая версия стандарта C++ ISO была опубликована в 1998 году.
Википедия утверждает, что Stroustrup изобрел RAII, опирается на его книгу " Дизайн и эволюция C++", опубликованная в 1994 году.
У меня нет копии для проверки, но, похоже, она по крайней мере на этот раз.
Любой язык, имеющий переменные области с автоматическими вызовами деструктора, может выполнять RAII. C++ имел это понятие с самого начала как вызов деструктора, когда выполнение оставляет область, в которой объявлена переменная, было в C++ с самого начала.