-
Key: CPP1113-4
-
Status: closed
-
Source: Remedy IT ( Johnny Willemsen)
-
Summary:
Because of the mapping of Exception to something derived from std::exception where is a possible conflict when the user has an exception member with the member name "what" because std::exception provides an operation what(). We propose to change the start of section 6.20 to the text below instead of the first two bullets currently in the specification
An OMG IDL exception is mapped to a C++ class that derives from the standard UserException class. Each OMG IDL exception member maps to a set of corresponding member methods as described in “Mapping for Structured Types” on page 14. When the IDL exception member identifier is "what", the string “cxx” is prepended to the identifier to resolve a conflict with the std::exception what() operation.
The copy constructor, move constructor, copy assignment operator, move assignment operator, and destructor automatically copy, move, or free the storage associated with the exception. For convenience, the mapping also defines an explicit constructor with one parameter for each exception member in the order they are specified in IDL—this constructor initializes the exception members to the given values. The default constructor initializes all members to their default values as described in “Mapping for Structured Types” on page 14.
-
Reported: CPP11 1.2 — Mon, 13 Apr 2015 08:36 GMT
-
Disposition: Resolved — CPP11 1.3
-
Disposition Summary:
Possible name conflict involving "what" and exceptions.
See Johnny's comment on issue #4
-
Updated: Tue, 19 Dec 2017 20:10 GMT
CPP1113 — Handle possible exception what conflict and improve Exception introduction text
- Key: CPP1113-4
- OMG Task Force: IDL to C++11 1.3 RTF