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