Thorsten Behrens wrote:
Stephan Bergmann <[EMAIL PROTECTED]> writes:

I saw your patch yesterday and only had a quick glance at it.  What I
do not understand is whether those "few ambiguities/incomplete types
across OOo" are related to the Reference change (i.e., whether the
Reference change introduces an incompatibility that has to be taken
care of at those various places across OOo---that would be a clear no
no).

Hi Stephan,

no, this ain't an incompatibility in the sense of the word, although
without the changes, compilation would break.  Basically, removing
operator const Reference< XInterface >& unearthes various places,
where the source type (that of the referenced interface being
implicitely casted) is incomplete, or where the conversion to
XInterface is ambiguous (people who do multiple inheritance). The
former borders to a bug, the latter is inconvenient - although I
suspect that the underlying reason for people passing around generic
XInterfaces (and later querying for the actually needed one again) is
at least partially related to uno::Reference having _only that one_
single automatic conversion in the past.

Cheers,

-- Thorsten

To avoid problems with places where an otherwise ambiguous upcast from XWhatever to XInterface (i.e., where XWhatever uses multiple inheritance) used to work via the removed Reference::operator, would it make sense to specialize the new copy constructor/operator = member templates for the special case Ifc=XInterface? Just a thought.

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to