question about void, passing data and print\write

Not so much for the actual code, just now there are two things to modify when the return type change. Macros can be iffy, search google for examples.

I didn't think of it before, but just use an anonymous namespace.

namespace{
  template<class T>
    void MyLCD(byte col, byte row, T t)
      {

      }
}

//...

void setup(){

    MyLCD( 0, 1, 1 );
}

Seems by far the best as the IDE doesn't generate a prototype for it.