#include <iostream>
#include <fstream>
using namespace std;
ostream &operator<<( ostream &stream, unsigned char ret ){
stream << (unsigned short)ret;
return stream;
}
int main(){
unsigned char x=62;
cout << x;
ofstream out("Result.txt");
out << x;
out << " " << x;
out.close();
return 1;
}

12行目のxのみがunsigned charで表示されてしまいます。
恐らくは12行目の<<のみがオーバーロードできていないのでしょうが、
原因と対策を教えていただけないでしょうか?
コンパイラはVC++6.0を使用しています。
宜しくお願いします。