CPP 1.1 NO IDEA Avatar
  1. OMG Issue

CPP11 — void * functions for Any

  • 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