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.