<br><br><div class="gmail_quote">On Tue, Dec 13, 2011 at 9:08 PM, Jonathan M Davis <span dir="ltr"><<a href="mailto:jmdavisProg@gmx.com">jmdavisProg@gmx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is the plan for std.container still to have all of its containers be final<br>
classes (classes so that they're reference types and final so that their<br>
functions are inlinable)? Or has that changed? I believe that Andrei said<br>
something recently about discussing reference counting and containers with<br>
Walter.<br>
<br>
The reason that I bring this up is that Array and SList are still structs, and<br>
the longer that they're structs, the more code that will break when they get<br>
changed to classes. Granted, some level of code breakage may occur when we add<br>
custom allocators to them, but since that would probably only affect the<br>
constructor (and preferably wouldn't affect anything if you want to simply<br>
create a container with the GC heap as you would now were Array and SList<br>
classes), the breakage for that should be minimal.<br>
<br>
Is there any reason for me to not just go and make Array and SList final<br>
classes and create a pull request for it?<br>
<font color="#888888"><br>
- Jonathan M Davis<br>
</font></blockquote></div><br>What happens in cases where you need to extend functionality of those containers by inheritance?  With structs you'll have to rely on composition.<br>