1. OMG Mailing List
  2. IDL to C++11 V1.4 (IDL2CPP11) Revision Task Force

Open Issues

  • Issues not resolved
  • Name: idl2cpp11-rtf
  • Issues Count: 6

Issues Descriptions

Improve wording

  • Key: CPP1116-38
  • Status: open  
  • Source: Remedy IT Expertise BV ( Johnny Willemsen)
  • Summary:

    The spec has the following sentence:

    The _d discriminator modifier can only be used to set the discriminant to a value within the same union member.

    This is not really clear and should be improved, maybe

    The _d discriminator modifier can only be used to set the discriminant to a value that has the same union member as currently selected.

  • Reported: CPP11 1.6b1 — Wed, 29 Mar 2023 06:48 GMT
  • Updated: Fri, 31 Mar 2023 18:25 GMT

Incorrect constructor referenced in Fixed description

  • Key: CPP1117-8
  • Status: open  
  • Source: Remedy IT Expertise BV ( Johnny Willemsen)
  • Summary:

    This chapter says:

    The Fixed(std::string&) constructor converts a string representation of a fixed-point literal, with an optional leading sign (+ or -) and an optional trailing ‘d’ or ‘D’, into a real fixed-point value.

    But there is no constructor that accepts a non-const std::string&, the text should say

    The Fixed(const std::string&) constructor converts a string representation of a
    fixed-point literal, with an optional leading sign (+ or -) and an optional trailing ‘d’ or ‘D’, into a real fixed-point value.

  • Reported: CPP11 1.6b1 — Tue, 10 Jan 2023 15:56 GMT
  • Updated: Thu, 12 Jan 2023 20:46 GMT

Missing description related to union member modifier

  • Key: CPP1117-7
  • Status: open  
  • Source: Remedy IT Expertise BV ( Johnny Willemsen)
  • Summary:

    In the specification an addition was made about the default argument when the union member has multiple legal discriminator values:

    Union members associated with the "default" label and those associated with multiple labels may have multiple legal discriminator values. For these members, the modifiers (those that return void) have a second parameter which has the discriminator's type. This parameter has a default argument. For members associated with multiple labels, the value of the default argument is the value of the case label that appears first in IDL. For members associated with the default label, the value of the default argument is an implementation-defined value that selects the member.

    There is nothing in the text that describes what happens when a discriminator value is passed which doesn't belong to the member, this is implicitly in the example code further down "u.obj(a, 2)", but this should be explicit in the text also, passing a not allowed discriminator should result in a BAD_PARAM exception

  • Reported: CPP11 1.6b1 — Tue, 10 Jan 2023 09:20 GMT
  • Updated: Thu, 12 Jan 2023 20:46 GMT

Add standardized annotation to override the IDL map to std::map mapping


6.7.8 Argument Passing Considerations should refer to "Basic Data Types" not "primitive"

  • Key: CPP1117-3
  • Status: open  
  • Source: OpenText Inc. ( Simon McQueen)
  • Summary:

    The section says:

    "For all primitive types, enums, and
    reference types, an in argument A of type P, that argument is passed as P. For all other types, an in argument A of type P is
    passed as const P&. For an inout and out argument it is passed as P&. If we return a type of P, it is returned as P."

    This is the only use of "primitive types" in the spec. "Basic Data Types" should be preferred. Would suggest:

    "For all Basic Data Types [link/ref to 6.6 Mapping for Basic Data Types], enums [link/ref to 6.9 Mapping for Enums], and
    reference types [link/ref to 6.7.1 Reference Types], an in argument A of type P, that argument is passed as P. For all other types, an in argument A of type P is
    passed as const P&. For an inout and out argument it is passed as P&. If we return a type of P, it is returned as P."

  • Reported: CPP11 1.6b1 — Fri, 10 Dec 2021 15:02 GMT
  • Updated: Tue, 11 Oct 2022 19:31 GMT

Typo in example

  • Key: CPP1117-2
  • Status: open  
  • Source: Remedy IT ( Johnny Willemsen)
  • Summary:

    using M2 = IDL::bounded_map<std::string, T, 20;

    should be

    using M2 = IDL::bounded_map<std::string, T, 20>;

  • Reported: CPP11 1.6b1 — Wed, 20 Oct 2021 06:24 GMT
  • Updated: Thu, 25 Aug 2022 20:52 GMT