Controller print APU

The API definition for the vex::controller::lcd.print() is very unfortunate.
There is a templated definition that accepts about anything and tries to format it as one of the number kinds, then there is an explicit specialization for const char *:


template <class T>
void     print( T value ) { .. }

void     print( const char *format, ... );

When you, for whatever reason try to call print with (non-const) char *, the compiler will reject the specialization, try the template variant for double and emit a cryptic (to the target audience at least) error message.

Adding an extra specialization for char* should help.

Test case:


char buffer[50];
Controller1.Screen.print(buffer);

ok, will look into that. The template is there to handle modkit blocks that has a “number” class that can be integer or double.