Can a macro return value be concatenated ?

 
Hello, I probably missing some macro related knowledge here, so well I would appreciate if someone can help me to understand & fix this little problem : 

macros.mqh

#define I2S(_int)    IntegerToString(_int);


EA.mq5

#include "macros.mqh"

int OnInit()
{   
   int i = 1;
   string valid = I2S(i);
   string not_valid = I2S(i) + " is an integer"; // '+' illegal operation use (expression has o effect)
   
   return (INIT_FAILED);
}



 
Sergio Tarquini: I probably missing some macro related knowledge here,

#define I2S(_int)    IntegerToString(_int);

You wrote

string not_valid = IntegerToString(i); + " is an integer"; // '+' illegal operation use (expression has o effect)

(Almost) never add the terminating semicolon to the definition. You add it when you use it.

 
oh yes! thank you very match!