<div dir="ltr">Yes, the fields are laid out essentially using C layout and spurious alignment is added to everything else...  I'll put it in one file and investigate CRTP.<div><br></div><div style>-Warren</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Jun 28, 2013 at 3:05 PM, John McCall <span dir="ltr"><<a href="mailto:rjmccall@apple.com" target="_blank">rjmccall@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Jun 28, 2013, at 2:50 PM, Warren Hunt <<a href="mailto:whunt@google.com">whunt@google.com</a>> wrote:<br>
> That is reasonable, we can certainly fuse them into a single file and that will make sharing some C-layout code easier.  I can do that.  I personally find (more) smaller files easier to navigate and tend to break things apart.  Of course that causes either duplication of code or re-factoring into headers.<br>

<br>
</div>I'd strongly prefer to avoid any unnecessary duplication here just because there are so many small levers affecting class layout, but pulling code into a CRTP (or otherwise) base in a private header wouldn't be unreasonable if the code is like 90% divergent.  I am assuming here that this is not *just* C layout but is also useful for layout of fields in C++ classes (although IIRC MSVC lays out the fields separately and then drops them into the larger class as a chunk, potentially leaving spurious alignment padding after the vfptr/vbptr/bases).<br>

<span class="HOEnZb"><font color="#888888"><br>
John.<br>
</font></span></blockquote></div><br></div>