I have no doubt that seasoned RTI/DDS developers will spot the flaw in the following, but it's escaping me.
Given the following IDL input (call it Z.idl):
typedef struct Q
{
long A[2];
double B[3];
char C[5];
} Q_t;
Compile it (using the RTI Connext 5.0.0 IDL compiler) and examine the resulting Q_t typedef:
mkdir -p temp
rtiddsgen.bat -inputIdl -ppDisable -replace -language C++ -d temp Z.idl
grep Q_t temp/Z.h | grep typedef
This produces the following surprising result for me:
typedef Q Q_t[2][3][5];
The only workaround I've found is introducing N typedefs (one for each data member that is an array):
typedef long A_t[2];
typedef long B_t[3];
typedef long C_t[5];
typedef struct Q
{
A_t A;
B_t B;
C_t C;
} Q_t;
Is there a way to phrase a data type containing N arrays without having to also write N array typedefs?
Thanks in advance...
Hello,
My name is Bert Farabaugh and I am a Field Applications Engineer at RTI. With regard to your question of using Typedef's with a Struct, please try the following idl changes.
struct Q
{
long A[2];
double B[3];
char C[5];
};
typedef Q Q_t;
Please contact me if you have any additional questions.
bertf@rti.com