IDL to C++11 Language Mapping Avatar
  1. OMG Specification

IDL to C++11 Language Mapping — Open Issues

  • Acronym: CPP11
  • Issues Count: 18
  • Description: Issues not resolved
Open Closed All
Issues not resolved

Issues Descriptions

Missing base_type IDL traits for base struct and bitset

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

    Both the IDL struct and bitset support inheritance in 6.31, at the moment the struct/bitset has a base, a IDL::traits<>::base_type should be make available for template meta programming

  • Reported: CPP11 1.7 — Fri, 22 Nov 2024 12:37 GMT
  • Updated: Mon, 2 Dec 2024 18:32 GMT

Add support for @cpp_mapping

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

    Proposal is to add a @cpp_mapping as IDL4toC++ has, to enable users to select a mapping of IDL struct to a C++ struct (that mapping itself has to be added here also)

  • Reported: CPP11 1.7 — Wed, 23 Oct 2024 13:23 GMT
  • Updated: Mon, 28 Oct 2024 14:52 GMT

constexpr constructors missing

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

    In user code I want to use constexpr for IDL fixed values, for example

    constexr F pi

    {3.142857}

    ;

    But in order for that to work a constexpr constructor has to be available, the spec should define that

  • Reported: CPP11 1.7 — Wed, 4 Sep 2024 07:19 GMT
  • Updated: Wed, 4 Sep 2024 14:18 GMT

CORBA::CustomerMarshal, type

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

    CORBA::CustomerMarshal, should be CORBA::CustomMarshal,

  • Reported: CPP11 1.7 — Mon, 19 Aug 2024 07:10 GMT
  • Updated: Wed, 4 Sep 2024 14:10 GMT

Typo CORBA::CustomerMarshal

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

    CORBA::CustomerMarshal should be CORBA::CustomMarshal

  • Reported: CPP11 1.7 — Mon, 19 Aug 2024 07:08 GMT
  • Updated: Wed, 4 Sep 2024 14:07 GMT

Change union API misuage exception

  • Key: CPP1117-36
  • Status: open   Implementation work Blocked
  • Source: Remedy IT ( Johnny Willemsen)
  • Summary:

    In order to get a type system which is CORBA independent we propose to change the exception which can be thrown by the union from CORBA::BAD_PARAM to std::invalid_argument. The impact for users is minimal as they can except std exceptions from the other std types they already use through this language mapping.

  • Reported: CPP11 1.7 — Wed, 20 Mar 2024 15:06 GMT
  • Updated: Thu, 4 Apr 2024 15:09 GMT

No external annotation mapping

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

    The specification lacks a description how to map the @external annotation

  • Reported: CPP11 1.7 — Wed, 24 Jan 2024 09:32 GMT
  • Updated: Wed, 24 Jan 2024 21:37 GMT

No mapping for min/max/range annotations

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

    The IDL to C++11 spec lacks a mapping for the min/max/range annotations

  • Reported: CPP11 1.7 — Wed, 24 Jan 2024 09:28 GMT
  • Updated: Wed, 24 Jan 2024 21:37 GMT

Clarify implicit default

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

    The spec says "In case the union has an implicit default member it is initialized to that case", but it doesn't specify what is an implicit default member, maybe add "i.e., if the union does not have a default case and not all permissive discriminator values are listed"

  • Reported: CPP11 1.7 — Tue, 16 Jan 2024 09:13 GMT
  • Updated: Tue, 16 Jan 2024 13:52 GMT

Default annotation

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

    The default annotation is not just for struct members, also for exception/union members but it can also be applied to a type, so also for example attributes of an interface/component/connector can have a default, all code generation related to that should also use the default whenever one is needed (for example starter code generation)

  • Reported: CPP11 1.7 — Thu, 11 Jan 2024 08:33 GMT
  • Updated: Fri, 12 Jan 2024 17:13 GMT

Apply IDL/C++ formatting to code in text

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

    All IDL/C++ that is used in the text should be have a different font like done in the other parts of the spec, that is for example int8_t/uint8_t/Base::Base/

  • Reported: CPP11 1.7 — Wed, 10 Jan 2024 10:42 GMT
  • Updated: Wed, 10 Jan 2024 15:27 GMT

Remove semi colon after namespace closure

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

    There shouldn't be a semi colon after the namespace closure, this is done in more places in the spec, search for "namespace", closing should be "}" and not "};", see chapters 6.3/6.5/6.23.1/6.26.2/6.27.2/6.28/6.29

  • Reported: CPP11 1.7 — Wed, 10 Jan 2024 10:40 GMT
  • Updated: Wed, 10 Jan 2024 15:26 GMT

Destructors should be override

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

    For the following places the declared destructors should be using override and not virtual as they override the base class destructor. This should happen to:

    • 6.18.4, see "virtual ~Example();"
    • 6.18.4, see "virtual ~OBV_Example();"
    • 6.20, see "virtual ~Exception();"
    • 6.20, see "virtual ~SystemException();"
    • 6.25, see "virtual ~MyLocalIF();"
    • 6.26.6, see "virtual ~A_skel ();" and "virtual ~A_impl ();"
    • 6.26.8 see "virtual ~TIE() = default;"
  • Reported: CPP11 1.7 — Wed, 10 Jan 2024 10:34 GMT
  • Updated: Wed, 10 Jan 2024 15:26 GMT

Add && setter

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

    For the optional mapping example a `void age(IDL::optional<float>&&)` is lacking, like described for some types in chapter 6.14

  • Reported: CPP11 1.6b1 — Tue, 31 Oct 2023 10:14 GMT
  • Updated: Tue, 7 Nov 2023 16:01 GMT


Formatting c++/idl in text

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

    Within the text of chapter 6.31/6.32 (IDL4) all C++/IDL should use a different font to make it clear it is code, just as in the other chapters.

  • Reported: CPP11 1.6b1 — Tue, 31 Oct 2023 08:19 GMT
  • Updated: Tue, 7 Nov 2023 16:00 GMT

Fix bitset mapping

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

    For anyone using the class mapping of a structure the spec should also provide a class mapping for a bitset, that way they have a consistent API. Also why is a inherited bitset not mapped to C++ inheritance, by removing the inheritance the inheritance relation can't be used in C++ also

  • Reported: CPP11 1.6b1 — Tue, 22 Aug 2023 07:26 GMT
  • Updated: Mon, 2 Oct 2023 22:38 GMT

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