CORBA 2.6.1 Programmer's Reference

Mapping for Valuetypes (1.17)
The C++ language mapping specifies that a private default assignment operator should be generated for
value box types. A private assignment operator is needed to avoid the default C++ member-wise copy
semantics for assignment, which are incompatible with value box reference counting. NonStop CORBA
does not generate a default assignment operator, making it easy to generate value box objects with
incorrect reference counts.
Abstract Interface Base (1.18.1)
NonStop CORBA does not support the AbstractBase::_to_object and
AbstractBase::_to_value operations. A protected copy constructor should be generated for
abstract interface classes. The NonStop CORBA IDL compiler generates a private copy constructor.
Mapping for Exception Types (1.19)
Constructors for exception types containing an object reference member should invoke _duplicate on
the corresponding object reference parameter. NonStop CORBA continues to exhibit the behavior of
performing a pointer assignment (A_var = A_ptr).
NonStop CORBA fails to generate an appropriate String_mgr class for exception types containing strings
or wstrings. Strings and wstrings should be initialized to an empty string. Exception types should be
self-managing.
NonStop CORBA fails to define a _downcast() operation for the CORBA::SystemException
class and fails to generate a _downcast() operation for user-defined exceptions. Since NonStop
CORBA supports standard C++ exceptions, and the NonStop C++ run-time supports dynamic_cast
<>, this is a minor compatibility issue for applications written for other ORBs.
NonStop CORBA does not provide an ostream insertion operator that has an Exception* pointer
parameter.
NonStop CORBA does not provide a copy constructor in the abstract CORBA::Exception class.
NonStop CORBA adds the operation char * CORBA::Exception::format (void) that
returns a descriptive string describing the exception. Its usage might follow the pattern:
try {
...
} catch (const CORBA::Exception &exc) {
printf (ī€œ%sī€, exc.format ());
&
}
The left-shift operator can be used to print to an ostream:
try {