diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 3e6afc69c..a64a587f2 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -363,6 +363,11 @@ void WriteScalar(void *p, T t) { *reinterpret_cast(p) = EndianScalar(t); } +template struct Offset; +template __supress_ubsan__("alignment") void WriteScalar(void *p, Offset t) { + *reinterpret_cast(p) = EndianScalar(t.o); +} + // Computes how many bytes you'd have to pad to be able to write an // "scalar_size" scalar if the buffer had grown to "buf_size" (downwards in // memory).