13.1.7.1 Fixed-length Versus Variable-length Structs

A variable-length struct contains an additional assignment operator member function to handle assignments between two variable-length structs.

For example, consider the following OMG IDL definition:

// OMG IDL
module INVENT
   {
   // Fixed-length
   struct Date
       {
       long year;
       long month;
       long day;
       };

// Variable-length
struct Address
      {
      string aptNum;
      string streetName;
      string city;
      string state;
      string zipCode;
      };
};

This definition maps to C++ as follows:

// C++
class INVENT
     {
     struct Date
        {
        CORBA::Long year;
        CORBA::Long month;
        CORBA::Long day;
         };
         struct Address
            {
            CORBA::String_var aptNum;
            CORBA::String_var streetName;
            CORBA::String_var city;
            CORBA::String_var state;
            CORBA::String_var zipCode;
            Address &operator=(const Address &_obj);
            };
};