<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 22, 2013, at 13:42 , Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br>On Feb 22, 2013, at 13:40 , Sean Silva <<a href="mailto:silvas@purdue.edu">silvas@purdue.edu</a>> wrote:<br><br><blockquote type="cite">On Fri, Feb 22, 2013 at 1:29 PM, Benjamin Kramer<br><<a href="mailto:benny.kra@googlemail.com">benny.kra@googlemail.com</a>> wrote:<br><blockquote type="cite">This may seem counter-intuitive but the POD-like optimization helps when the<br>vectors grow into multimegabyte buffers. SmallVector calls realloc which knows<br>how to twiddle virtual memory bits and avoids large copies.<br></blockquote><br>Is this optimization something that libc++ should be doing?<br></blockquote><br>I haven't looked but I would guess that libc++ uses is_trivially_movable/is_trivially_copyable instead of is_pod, and all of our isPODLike cases should be trivially copyable if not trivially movable.<br></blockquote></div><br><div>Also I type faster than I think, since trivially copyable <i>implies</i> trivially movable.</div><div><br></div><div>Jordan</div></body></html>