On Thursday, February 06, 2003 3:13 PM [GMT+1=CET], David B. Held <[EMAIL PROTECTED]> wrote:
> "David B. Held" <[EMAIL PROTECTED]> wrote in message > b1m57m$702$[EMAIL PROTECTED]">news:b1m57m$702$[EMAIL PROTECTED]... > > > > [...] > > > > I mean, the optimally_inherit eliminates the empty bases, and > > > > yet there is size bloat. So VC++ makes the class bigger for > > > > some other reason than that it has empty bases. I will try to > > > > write some tests to see why that is, or at least how. > > > > > > I repeat, I bet it's MI-related. > > > > The proof of the pudding is in the eating. > > I got a chance to taste the pudding, the the results are inconclusive. > The cause of the size bloat was that I had changed ref_counted to > inherit from noncopyable. Seems like an innocent enough change. > Seems that for the single-inheritance case, we should see some > EBO action, right? Well, we do, unless ref_counted is a base in > an MI hierarchy. Why its place in an hierarchy should change its > size is a mystery to me, What do you mean that its *place* in the hierarchy affects the size? If it's in the hierarchy, it's a base. > but taking out noncopyable restores that > magical size. Now, I would appreciate it if people with Intel, CW, > and some other compilers would try out the code in the sandbox > and see if the first test passes (turn on --log-level=all, and pipe the > output to your favorite paginator). BTW, these are not the kind of tests I was thinking of. I was more interested in simple tests with SI and MI using dummy classes with zero or more data members and trivial/non-trivial ctors/dtors. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost