question about void, passing data and print\write

Forget the defines. Using IDE 1.0.2 you can make it work. Example:

HardwareSerial & lcd = Serial;

// function prototype
template<class T> 
void MyLCD(byte col, byte row, T t);

// function definition
template<class T>
void MyLCD(byte col, byte row, T t)
{
//  lcd.setCursor(col,row);
  lcd.print(t);
}

void setup ()  {  }  
void loop ()  {  }

That compiles without errors. I simulated the lcd class with a reference to HardwareSerial, but that's not important right now.

The important thing is to prototype the templated function as I did up there. Then the compiler won't generate another prototype in the wrong place.