On Thursday 25 of April 2013, Michael Stahl wrote:
> On 25/04/13 12:08, Noel Grandin wrote:
> > On 2013-04-25 11:59, Michael Stahl wrote:
> >> e.g. this problem here caused a 3 % or so slowdown in ODF file load
> >> and/or save (i forgot which), mainly due to 2 additional queryInterface
> >> calls in a critical place:
> >> https://issues.apache.org/ooo/show_bug.cgi?id=108161
> >>
> >> with your proposal it would be possible to write code like:
> >>
> >>    Reference<B> b = ...
> >>    methodFooThatTakesA( b );
> >>    methodBarThatTakesA( b );
> >>    methodBazThatTakesA( b );
> >>
> >> ... and get 3 queryInterface calls instead of 1.
> >>
> >> or let me reformulate that: is it possible to implement your
> >> hypothetical operator such that it does not call queryInterface (i don't
> >> know).

 A and B are normal C++ classes with the right inheritance, aren't they? I'd 
expect a template uno::Reference ctor with the right check for allowing only 
inheriting types should do.

> > My desire is to make the UNO code less "noisy".
> > And it matches the natural semantics of C++, which is that it's possible
> > to pass a subtype of the expected parameter's type.
>
> hmmm... looking at the amount of boilerplate involved one gets the
> impression that UNO somehow appears more natural in languages that
> aren't C++ :)

 Probably nobody has spent enough time to design that boilerplate for those 
other languages :).

-- 
 Lubos Lunak
 l.lu...@suse.cz
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to