Manipulando Diferentes Tipos de Dados em uma Estrutura Única

Eu preciso enviar algumas informações em uma fila de mensagens do VxWorks. A informação a ser enviada é decidida em tempo de execução e pode ser de tipos de dados diferentes. Eu estou usando uma estrutura para isso -

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
};

No momento, estou enviando uma matriz de structData pela fila de mensagens.

structData arrStruct[MAX_SIZE];

O problema aqui é que apenas uma variável na estrutura é útil por vez, as outras duas são inúteis. A fila de mensagens é, portanto, desnecessariamente sobrecarregada. Não posso usar sindicatos porque o tipo de dados e o valor são obrigatórios. Eu tentei usar modelos, mas não resolve o problema.Eu só posso enviar uma matriz de estruturas de um tipo de dados de cada vez.

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

structData<int> arrStruct[MAX_SIZE];

Existe uma maneira padrão de manter essa informação?

questionAnswers(5)

yourAnswerToTheQuestion