There exists a flatbuffers::GetTemporaryPointer and flatbuffers::GetMutableTemporaryPointer. The former giving a const T* and the latter returning a T*. However, their input parameters are the same. You do need to input a mutable FlatbufferBuilder instance (non-const) to GetTemporaryPointer even though it is never mutated.