Обработка разных типов данных в единой структуре
Мне нужно отправить некоторую информацию в очередь сообщений 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];
Есть ли стандартный способ хранения такой информации?