Or use a class:
class CMqlParam
{
public:
ENUM_DATATYPE type;
long integer_value;
double double_value;
string string_value;
CMqlParam(ENUM_DATATYPE t,long i,double d,string s) : type(t),integer_value(i),double_value(d),string_value(s) {};
CMqlParam(MqlParam &p) : type(p.type),integer_value(p.integer_value),double_value(p.double_value),string_value(p.string_value) {};
};
void F(CMqlParam *parm=NULL)
{
//--- do your stuff
if(parm==NULL)
{
Print("NOOP");
}
else
{
Print(parm.type);
Print(parm.integer_value);
Print(parm.double_value);
Print(parm.string_value);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnStart()
{
MqlParam param={TYPE_DATETIME,0,100.0,""};
CMqlParam myparam1(TYPE_BOOL,1,1.0,"string");
CMqlParam myparam2(param);
F(&myparam1);
F(&myparam2);
F();
}