[omniORB] long -> Any -> Any
   
    David Riddoch
     
    djr@uk.research.att.com
       
    Thu, 2 Sep 1999 17:07:08 +0100 (GMT)
    
    
  
On Thu, 2 Sep 1999, HA Quoc Viet wrote:
> =================================================================================
> 
> long l = 2;
> CORBA::Any any, value;
> 
> any <<= l ;         // works, though not with all orbs (ie mico fails)
> value << any ;
> l=1;
> value >> l ;        // doesn't work. I'd bet value is not storing a long
> but an Any 
> 
> ... finally yelds l=1, and not l=2 as I expected.
As it should -- you have inserted an Any into an Any.
(I assume you mean <<= and >>= not << and >>).
> ==================================================================================
> 
> CORBA::Any src,dst;
> memcpy( (void*)dst , (void*)src , siezof(CORBA::Any) );
> 
> make things very unstable
Yes - this is completely illegal.
> ==================================================================================
> 
> CORBA::Any src,dst;
> dst = src ;
> 
> doesn't work either
In what way does it not work?  It should.
eg.
CORBA::Any a1, a2;
CORBA::Long l1 = 1, l2 = 2;
a1 <<= l1;
a2 = a1;
a2 >>= l2;
assert(l1 == l2);
Let me know if this doesn't work.
David