Why is `Appender`'s store `Data` put directly as
     `private Data* _data;`
instead of
     `private Data _data;`
?
Removing the pointer indirection would give better locality.
If it's about optimizing for empty `Appender`s then a `Appender*` 
should be used in those cases instead.