Stephan writes:

> I vaguely remember having discussed this before with Daniel Bölzle,
> but neither of us can remember whether there were any serious problems
> with it.
>
Well, will of course try this on a full build ;-)

> Whether or not the constructor should be explicit might be a
> question of style, however.
>
Don't think so. To match behaviour of plain ptrs (for the implicit
conversion), the copy constructor needs to be non-explicit. After all,
having that taking place automatically is my whole point here. 
 
Frank writes:

> As much as I appreciate convenience while writing code, I never felt
> too bother with using the .get()-workaround.
>
Granted. My point was that the workaround is non-obvious, to the best
of my knowledge nowhere documented, and it breaks the abstraction of
uno::Reference being a ptr-like object.

> On the other hand, I somewhat fear the zillion lines of output
> probably emitted by the compiler when it comes to an assigment "xFoo
> = xBar" where XBar is *not* a base class of XFoo, but the compiler
> nonetheless tries to match the several hundred potential assignment
> instantiations. Which makes me reluctant to this change ...
>
Well, that's only 'your' Windows compiler stupidness - and it does
that nevertheless, with that stdexcept spillage... ;-)

No, seriously, in this case there's no trying-out of template
instantiations. The types of xFoo and xBar completely and sufficiently
determine the member template instantiation - the place that fails is
the ptr assignment inside that template.

So, if there are no hard objections, I'd implement the change, do a
full build on my favorite platform, and report back with a complete
patch here.

Cheers,

-- 

Thorsten

If you're not failing some of the time, you're not trying hard enough.

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

Reply via email to