template<typename T> string ToString( const T& );
と宣言しといて、
template<> string ToString( const struct Hage& arg ){
//argを文字列に変換するコード
}
みたいなのを文字列に変換したい型の数だけ実装して、
strunt Hage a = {〜〜〜};
string hageStr = ToString(a);
みたいに使えばよくね?