Obsługa różnych typów danych w jednej strukturze
Muszę wysłać pewne informacje w kolejce komunikatów VxWorks. Informacje do wysłania są określane w czasie wykonywania i mogą być różnych typów danych. Używam do tego struktury -
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
};
Obecnie wysyłam tablicę structData przez kolejkę komunikatów.
structData arrStruct[MAX_SIZE];
Problem polega na tym, że tylko jedna zmienna w strukturze jest przydatna na raz, pozostałe dwie są bezużyteczne. Kolejka komunikatów jest zatem niepotrzebnie przeciążana. Nie mogę używać związków, ponieważ typ danych i wartość są wymagane. Próbowałem użyć szablonów, ale nie rozwiązuje problemu. Mogę wysyłać tylko tablicę struktur jednego typu danych naraz.
template <typename T>
struct structData
{
char m_chType;
T m_Data;
}
structData<int> arrStruct[MAX_SIZE];
Czy istnieje standardowy sposób przechowywania takich informacji?