info/=> cws fwkpostbeta1 : about operator >>= ( Any const &, SomeType & rhs )
[email protected] Wed, 21 Sep 2005 13:08:23 +0200 (CEST)
| Newsgroups | gmane.comp.openoffice.announce.interface |
|---|---|
| Message-ID | <3603916.1127300903140.JavaMail.root@sd-web1> |
Type info Title about operator >>= ( Any const &, SomeType & rhs ) Posted by [email protected] Affected ..., Effective from => cws fwkpostbeta1 Summary If operator >>= ( Any const &, SomeType & rhs ) returns false, then the right hand side argument has *not* been modified. Description Just because there has been confusion and a recent bug, I want to recall that in case of an invalid >>= assignment, the right hand side argument is *not* modified. Valid assignments are most similar to what C++ compilers take without warning, e.g. widening conversions without data loss. Some examples: sal_Int32 n; Any( static_cast<sal_Int8>(5) ) >>= n; // returns true: ok Any(/*VOID*/) >>= n; // returns false: n still 5 For interfaces, the source object may be queried for the demanded right hand side interface, e.g. Reference<XFoo> x( ...; Any(/*VOID*/) >>= x; // returns always false, x is untouched! Any( Reference<XFoo>() ) >>= x; // returns true: x is cleared (null) Mind that this is a valid assignment. The operator does not signal whether the right hand reference is non-null! Any( Reference<XBar>(non-null) ) >>= x; // returns true if object supports interface XFoo, else false (latter leaves x untouched which has been fixed by issue 41709) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]