4.3. APIs (Modern C++ API)

4.3.1. [Major] Constant string defined in IDLs/XMLs may have caused compilation issues if compiler set to use C++17 standard *

rtiddsgen-generated code used macros to define constants in different ways depending on the C++ standard. The following IDL code:

const string  TEST = "Hello world"

generated

RTI_CONSTEXPR_OR_CONST_STRING std::string TEST = "Hello world";

Depending on the capabilities of the compiler, RTI_CONSTEXPR_OR_CONST_STRING may have been expanded as constexpr, in which case the expanded code was:

constexpr std::string TEST = "Hello world";

which is not supported in the C++17 standard.

rtiddsgen no longer generates constexpr std::string.

[RTI Issue ID CODEGENII-1964]

4.3.2. [Major] Generated code for new OMG mapping did not compile if enums used as members of a struct *

rtiddsgen did not generate correct code for resetting samples with enums used in the structs/value type. The generated code was correct for unions.

The generated code for resetting structs/value types with enums is now correct.

[RTI Issue ID CODEGENII-1963]



* This bug does not affect you if you are upgrading from 3.1.x or earlier.