flatbuffers: возможно ли удалить буфер через root-указатель

Я начинаю использовать библиотеку flatbuffer. Но есть вещь, которая мне неудобна, когда дело доходит до удаления буфера. Я не знаю, как удалить буфер через элемент root-pointer-element. Если бы это было возможно, корневой указатель мог бы взять на себя ответственность за выделенное пространство, и я бы не стал беспокоиться о проблемах жизни (висящий корневой указатель, утечки памяти,...)

std::uint_8* buffer = get_buffer_for_exaple_from_file("my_monster.bin");
auto monster = MyGame::Sample::GetMonster(buffer);
///monster points somewhere in buffer

...

///now this would be very handy
delete_buffer(monster);                 ///buffer is deleted

Q: Возможно ли (возможно, с некоторыми ограничениями, так как монстр не изменчив и т. Д.) Написать что-то вроде delete_buffer

1 ответ

Решение

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

Другие вопросы по тегам