How to generically pass parameters to a function. General C++ question

AWOL:

#define MY_LCD_PRINT(x) do {if (condition) lcd.print (x);  } while (0)

This seems a lot like what OP already gave, so I guess the difference is is that this macro can take any argument? (string byte int)