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

0

Решение

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]