On Tue, 2008-06-03 at 16:51 +0200, Manuel Teira wrote:
> Andrew Stitcher escribió:
> ...
> > It looks to me like either this is a bug in the Sun compiler or the gcc
> > one.
> >
> > As in either the Sun compiler should be able to perform the conversion
> > even though there is private inheritance is involved. Or the gcc
> > compiler is allowing a conversion where it shouldn't.

I think this must be true (and I don't think you've shown otherwise).
One behaviour or the other is wrong.

> >
> > Is there any possibility of using gcc for your compiles?
> >
> > [Not that I'm trying to put you off the Sun compiler, but if gcc
> > works...]
> >   
> Well, I would like to be able to use the Sun Compiler. I also think that 
> it would be good for the project.

I completely agree that the more compilers you use the higher the code
quality you get in general.

> 
> I would like to understand where the problem is. So, please comment on 
> my (probably wrong) hypothesis:
> 
> We have the following inheritance chain:
> AsynchIO: private DispatchHandle
> DispatchHandle: public PollerHandle
> ...

Sorry, I can't tell from what you've said here what the hypothesis
actually is.

I think you are saying something about the difference between actual
object types and the types being passed. So that dynamic_cast<> behaves
differently on the two platforms.

As a side note, it will be difficult to change this inheritance scheme
as the lifetime of the AsynchIO object is dependant on it being deleted
as a DispatchHandle so aggregation of a DispatchHandle in the AsynchIO
object won't allow this.

Andrew


Reply via email to