-
Key: CPP11-146
-
Legacy Issue Number: 1700
-
Status: closed
-
Source: Anonymous
-
Summary:
Summary: The mapping for Any currently requires:
Any(TypeCode_ptr tc, void *value, Boolean release = FALSE);
void replace(TypeCode_ptr tc, void *value, Boolean release = FALSE);
const void *value() const;The meaning of the void * parameters is never defined (and cannot ever
be defined because it would have to mandate a particular binary layout).This means these three functions have completely undefined semantics. Even
for basic types, such as CORBA::Long, I cannot assume that the void *
will point directly at the long value, because the mapping implementation
is free to make the pointer point at some other value internal to an Any.Proposal: Remove these three functions from the mapping. If vendors want
to retain them for backward compatibility reasons, they can.
However, functions with completely undefined semantics that are
inherently non-portable have no place in a standard mapping. -
Reported: CPP 1.0b1 — Mon, 20 Jul 1998 04:00 GMT
-
Disposition: Resolved — CPP 1.0
-
Disposition Summary:
Leave the original text in place. Add a sentence saying that DynAny should be used instead.
-
Updated: Fri, 6 Mar 2015 20:58 GMT