|
Boost : |
From: David B. Held (dheld_at_[hidden])
Date: 2002-05-02 11:08:05
"David Abrahams" <david.abrahams_at_[hidden]> wrote in message
news:14e301c1f1ee$2b215600$6401a8c0_at_boostconsulting.com...
>
> ----- Original Message -----
> From: "Giovanni Bajo" <giovannibajo_at_[hidden]>
>
> > Just a note. Do you guys think it is worth adding a BOOST_NO_EBO,
> > and use this technique just as a fallback? I don't usually like seeing
so
> > much (meta-)code added to a library just to work around limitations of
> > some compilers, unless it is well separated.
>
> To make this useful we'd need NO_EBO and
> NO_MULTIPLE_INHERITANCE_EBO at least.
Does any compiler *really* lack EBO? Do any of them fully lack
MI-EBO? My guess would be that BOOST_PARTIAL_MI_EBO
describes the typical situation. After all, it's clear that both bcc and
VC6
do MI-EBO, since sizeof(ref_counted) == 8. I suspect that most other
compilers also do MI-EBO to some extent. It seems to me that compilers
that don't do full EBO want to throw in at least one byte for every class.
This is probably why sizeof(auto) == 5, while sizeof(ref_counted) == 8.
Of course, that's all wild speculation.
Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk