Обработка разных типов данных в единой структуре

Мне нужно отправить некоторую информацию в очередь сообщений VxWorks. Информация для отправки определяется во время выполнения и может быть разных типов данных. Я использую структуру для этого -

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

В настоящее время я отправляю массив structData через очередь сообщений.

structData arrStruct[MAX_SIZE];

Проблема здесь в том, что только одна переменная в структуре полезна за раз, а две другие бесполезны. Поэтому очередь сообщений перегружена излишне. Я не могу использовать союзы, потому что тип данных и значение являются обязательными. Я пытался использовать шаблоны, но это не решает проблему. Я могу отправлять только массив структур одного типа данных за раз.

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

structData<int> arrStruct[MAX_SIZE];

Есть ли стандартный способ хранения такой информации?

Ответы на вопрос(5)

Ваш ответ на вопрос