question about void, passing data and print\write

You can do 3 different things I tried.

template<class T>
  struct MyLCDHelper{
    static void MyLCD(byte col, byte row, T t)
      {
      
      }
};

//...
MyLCDHelper< bool >::MyLCD( 2, 1, 0 );
struct MyLCDHelper{
  template<class T>
    static void MyLCD(byte col, byte row, T t)
      {
        
      }
};

//...
MyLCDHelper::MyLCD( 2, 1, 0 ); //Template auto type deduction.

MyLCDHelper::MyLCD< bool >( 2, 1, 0 ); //Specific template.

Or a not so safe way.

//This must be the first line of code.
#define TVoid template<class T> void

TVoid MyLCD(byte col, byte row, T t)
      {

      }