How to initializ structs in function calls??

 

Hi,

is there a way to initialize a struct within a function call. Does it work only for classes?

CClass c;
SStruct s;
   
// works with classes!
c.Test(new CClass());
   
// error: '{' - parameter passed as reference, variable expected
s.Test({1,2});

// works, but it screams for a shortcut
SStruct y = {1,2};
s.Test(y);

struct SStruct
{
   int      x,y;
   void     Test(SStruct &s) {}
};

class CClass
{
   public:
      int   x,y;
      void  Test(CClass &c) {}
};

thank you

Daniel 

 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct SStruct
  {
   int               x,y;
   void              Init(int X,int Y) { x=X; y=Y; }
   void              Init(SStruct &s) { x=s.x; y=s.y; }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct SStruct1
  {
   int               x,y;
   void              SStruct1() {  }
   void              SStruct1(int X,int Y) { x=X; y=Y; }
   void              SStruct1(SStruct1 &s) { x=s.x; y=s.y; }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 1
   SStruct s1={1,2};
//--- 2
   SStruct s2;
   s2.Init(1,2);
//--- 3
   SStruct s3;
   s3.Init(s2);
//--- 4
   SStruct1 s4;
   s4.x=1;
   s4.y=2;
//---
   SStruct1 s5(1,2);
//---
   SStruct1 s6(s5);
  }
//+------------------------------------------------------------------+