[omniORB] omniORB2 with Borland C++ Builder app => Compilation Errors!!!

David Morgenlender dmorgen@alum.mit.edu
Tue, 14 Apr 1998 21:46:22 GMT


I've encountered a serious BCB3 compilation bug.  I'm trying to compile =
an
application which uses omniORB2 (CORBA).  I get an "Lvalue required" =
error as
indicated for code from CORBA.H, similar to the following:

  enum DefinitionKind
  {
     dk_none, dk_all, dk_Attribute, dk_Constant, ...
  };


  friend inline void operator<<=3D (DefinitionKind &_e,MemBufferedStream =
&s)
  {
     CORBA::ULong __e;
     _e =3D (DefinitionKind) __e;	// Get error:  Lvalue required!!!
  }

This class is nested within another class.  But I've determined this is =
not the
cause of the error.  There are other places where assignments to an enum
generates this error.  I've simplified it down to some pretty =
straightforward
cases, which fail.  But these all occur as a few simple lines of code =
within a
fairly massive class defintion.  If I try to boil it down to a short =
example,
i.e. within a short class definition, the problem goes away!!!  So in =
short, the
compiler seems to fail for assignment to an enum within this large class
definition only.

Now I'm really stuck.  I am unable to compile my app using omniORB!!!   =
OmniORB
is very complex.  To try to get it down to something which will compile =
could be
a MAJOR effort.  I've tried simple changes, such as changing the enum =
definition
to a typedef.  This makes no difference. =20

Any suggestions?  I'm pretty desperate!!!

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Dave Morgenlender
e-mail: dmorgen@alum.mit.edu
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D