On Wed, 14 Mar 2012 19:20:43 -0400, Jakob Bornecrantz <wallbra...@gmail.com> wrote:

On Wednesday, 14 March 2012 at 14:02:30 UTC, Steven Schveighoffer wrote:

This is unavoidable, whether it's a template or not. What changes do you envision would be transparent using an opaque pImpl model (as was done in previous versions of phobos), but would break using templates?

struct AAver1(K, V)
{
    K[] tbl; V[] tlb2; uint size;
}

struct AAver2(K, V)
{
    K[] tbl; V[] tbl2; V[] optimizationTbl;
}

Would break if a AAver1 table was ever passed to code that
was compiled against a AAver2 table. In sort you could never
add anything to the AA struct. Without going in roundabout
ways of making sure you never access outside of any struct
version ever out there.

Or for that matter change how the internal tables are
populated by add and remove.

So you are expecting druntime to be a .so/dll then. When that happens, we can worry about this. But right now, each dll gets it's own copy of druntime, so there still is no compatibility.

-Steve

Reply via email to