flatbuffers:是否可以通过根指针删除缓冲区

flatbuffers: Is it possible to delete a buffer via root-pointer

我开始使用 flatbuffer 库。但是当涉及到删除缓冲区时,有一点让我感到不舒服。我不知道如何通过它的根指针元素删除缓冲区。如果这是可能的,根指针可以取得分配的 space 的所有权,并且我不必担心生命周期问题(悬空的根指针,内存泄漏,...)

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

问:是否可以(可能在某些限制下,如 monster 不可变等)写类似 delete_buffer

的东西

根指针指向缓冲区内部 的位置,该位置不在已知偏移处,所以不,您不能通过它删除缓冲区。要删除缓冲区,必须使用原来的缓冲区指针。