return GetMutableTemporaryPointer<T>(fbb, offset);
}
+
+/// @brief Get a pointer to the the file_identifier section of the buffer.
+/// @return Returns a const char pointer to the start of the file_identifier
+/// characters in the buffer. The returned char * has length
+/// 'flatbuffers::FlatBufferBuilder::kFileIdentifierLength'.
+/// This function is UNDEFINED for FlatBuffers whose schema does not include
+/// a file_identifier (likely points at padding or the start of a the root
+/// vtable).
+inline const char *GetBufferIdentifier(const void *buf) {
+ return reinterpret_cast<const char *>(buf) + sizeof(uoffset_t);
+}
+
// Helper to see if the identifier in a buffer has the expected value.
inline bool BufferHasIdentifier(const void *buf, const char *identifier) {
- return strncmp(reinterpret_cast<const char *>(buf) + sizeof(uoffset_t),
+ return strncmp(GetBufferIdentifier(buf),
identifier, FlatBufferBuilder::kFileIdentifierLength) == 0;
}