On Thu, 15 Mar 2012 04:52:41 -0400, Timon Gehr <[email protected]> wrote:
On 03/15/2012 09:40 AM, Dmitry Olshansky wrote:
On 15.03.2012 2:44, Jakob Bornecrantz wrote:
Not true, as Steven said a opaque pImpl implementation would
work, most modern C library design follow this principle with
only using opaque except for pointers. This is because the ABI
will then only require you call a certain set of functions (that
can be extended to) not what that pointers points to, the
details can be completely hidden.
Trouble is when one dynamic lib uses one version of druntime and AA, and
your app another one. Guess what happens with this opaque pointer?
AA should probably be a class with virtual methods.
First, that only works if the vtable layout doesn't change (I've had more
trouble with binary compatibility because of this vs. binary compatibility
from different function implementations in C++).
Second, that breaks a *LOT* of code which expects AA's to just be declared
and used.
-Steve