Hoge& operator=(const char* s)
{ set( s ); return *this; }
Hoge& operator=(const string& s)
{ set( s ); return *this; }
Hoge& operator=(int s)
{ set( s ); return *this; }

みたいなのを延々と書きたくないんだけど、どうしたらいいの?