Manejo de diferentes tipos de datos en una sola estructura.

Necesito enviar información sobre la cola de mensajes de VxWorks. La información que se enviará se decide en tiempo de ejecución y puede ser de diferentes tipos de datos. Estoy usando una estructura para esto

struct structData
{
  char m_chType;    // variable to indicate the data type - long, float or string
  long m_lData;     // variable to hold long value
  float m_fData;    // variable to hold float value
  string m_strData; // variable to hold string value
};

Actualmente estoy enviando una matriz de structData a través de la cola de mensajes.

structData arrStruct[MAX_SIZE];

El problema aquí es que solo una variable en la estructura es útil a la vez, las otras dos son inútiles. Por lo tanto, la cola de mensajes está sobrecargada innecesariamente. No puedo usar uniones porque se requieren el tipo de datos y el valor. Intenté usar plantillas, pero no resuelve el problema. Solo puedo enviar una matriz de estructuras de un tipo de datos a la vez.

template <typename T>
struct structData
{
  char m_chType;
  T m_Data;
}

structData<int> arrStruct[MAX_SIZE];

¿Hay una manera estándar de mantener esa información?

Respuestas a la pregunta(6)

Su respuesta a la pregunta