Являются ли расширенные сопоставленные файлы RAII? - PullRequest
1 голос
/ 08 сентября 2011

Из того, что я могу судить по документации, с другой стороны, RAII - это одна из особенностей современного cpp.

http://www.boost.org/doc/libs/1_47_0/libs/iostreams/doc/classes/mapped_file.html

РЕДАКТИРОВАТЬ: Оказывается, ответ - да, но, пожалуйста, не забудьте использовать .is_open ().

1 Ответ

3 голосов
/ 08 сентября 2011

Глядя на реализацию, mapped_source / mapped_sink оба содержат общий указатель на базовый mapped_file_impl (см. Здесь источник mapped_file_impl)

Как видите, после последней ссылкиуничтожается, вызывает деструктор, который отсоединяется от сопоставленного файла.Тем не менее, он не уничтожает сопоставленный файл, не более чем уничтожение ofstream удаляет базовый файл.

...