CORBA_long_double type



G'day all.

I'm working on implementing Any in ORBit-C++, but have a problem.

The C++ mapping spec says that the CORBA::LongDouble type must be distinct
from other types for the purposes of overloading functions.
CORBA::LongDouble is typedef'd to ORBit's CORBA_long_double type, which is
in turn typedef'd to glib's gdouble type. CORBA::Double is likewise
typedef'd to ORBit's CORBA_double type, which is also typed to glib's
gdouble type. So the compiler can't tell them apart, and thinks the Any
insertion operator for CORBA::LongDouble is a redeclaration of the insertion
operator for CORBA::Double.

That's no good.

I tried changing the typedef for CORBA_long_double to "long double" (I would
have used glib's gldouble if it had been defined) and rebuilding ORBit, but
now if I try to send CORBA_long_double arguments I get garbage. I can't see
anywhere that has a size hard-coded. Yes, I rebuilt the IDL compiler as
well, and regenerated the stubs and skeletons with that.

Can anyone help me make CORBA_long_double a distinct type from CORBA_double?
Or more importantly, make CORBA::LongDouble distinct from CORBA::Double?
I don't really want to write a CORBA::LongDouble class and implement all the
standard arithmetic operators. :(
-- 
Sam Couter          |   Internet Engineer   |   http://www.topic.com.au/
sam topic com au    |   tSA Consulting      |
PGP key available on key servers
PGP key fingerprint:  A46B 9BB5 3148 7BEA 1F05  5BD5 8530 03AE DE89 C75C

Attachment: pgpP8Az3dcsOw.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]