[omniORB] omni3.0.2: string sequence _var lacks const operator[]

randy.shoup@tumbleweed.com randy.shoup@tumbleweed.com
Fri, 22 Dec 2000 13:39:20 -0800


We have been using omni2.* for a while, and now we are looking into
moving to omni3.  I encountered the following problem:

We have the following in our IDL:
	typedef sequence<string> StringArray;

omni2 mapped StringArray in the following way:
  typedef _CORBA_Unbounded_Sequence<CORBA::String_member > StringArray;
  typedef _CORBA_Sequence_Var<StringArray, CORBA::String_member >
StringArray_var;

StringArray_var ended up with an operator[] const.  And we made use of
the fact in our code that we could extract elements from a const
StringArray_var.

However, omni3 maps these types to new classes:
  class StringArray : public _CORBA_Unbounded_Sequence__String {
	...
  class StringArray_var {
	...

and does not generate an operator[] const.  The only
StringArray_var::operator[] is
    inline _CORBA_String_element operator [] (_CORBA_ULong s) {
      return (*_pd_seq)[s];
    }

which is non-const.

Because it seems to use the StringArray directly, and *that* class has
an operator[] const, why does the StringArray_var not have an operator[]
const?

Is this a bug, or a CORBA 2.3 mapping change?

Thanks,
-- Randy
_________________________________________________________________  
Randy Shoup                                     (650)216-2038  
Senior Architect                                rshoup@tumbleweed.com  
Tumbleweed Communications Corporation