Is there a variable data type available for Arduino? I have a class that should have a member that will differ in data type, in the past I have used the "variable" keyword in c++ but when I tried to use it the compiler yelled at me. I searched online and found a couple of articles that mentioned that if you are using an alternate GUI (I am using eclipse mars) that you can enable the feature but I can not find the correct settings as the examples I had found were for Juno and below.
Here is an example of what I am trying to accomplish
class DisplayItem{
public:
variant *displayVar;
void Display(){
Serial.println(displayVar);
}
}
int intDisplay;
String strDisplay;
DisplayItem item();
item.displayVar = &intDisplay;
item.Display();
item.displayVar = &strDisplay;
item.Display();
I realize I could create a overloaded function to display different data types but it would be allot easier if I could simply assign a reference to a variant datatype and reuse the variable.
Edit
So after looking through the answers I think I have this figured out. I needed to keep track of which variable was being set, I put together a quick example in hopes it will help someone else out with the same question.
class DisplayItem{
private:
int iVarType;
union{
int *i;
float *f;
} displayVar;
public:
void SetVar(int *var){
displayVar.i = var;
iVarType = 0;
}
void SetVar(float *var){
displayVar.f = var;
iVarType = 1;
}
void Display(){
if (iVarType == 0){
Serial.println(displayVar.i);
}else if (iVarType == 1){
Serial.println(displayVar.f);
}
}
}
int intDisplay = 1;
float floatDisplay = 0.123;
DisplayItem item();
item.SetVar(&intDisplay);
item.Display();
item.SetVar(&floatDisplay);
item.Display();
Will Display:
1
0.123