template <class T> void Show( T &data )
{
std::cout << data << std::endl;
}

この関数に引数としてunsigned charを入れると
文字として出力されてしまうのですが
なんとか数値として出力できないでしょうか?

int や doubleもこの関数を使うので表示するときにキャストは使えません。

ちなみにほんとの関数では配列をぶち込むので
関数に渡すときにキャストしたりもできません。