みなさんご回答ありがとうございます。

なぜtypeid().name()を使ったかというと、
同じような動作をするが、メンバー変数の型だけが違う、というクラスを作っていまして、
さらに、どういう型かを他クラスから文字列で識別できるようにもしなければならい都合がありました。
そこで、テンプレートクラスにして、その引数に型を指定し、その型から文字列を生成する、という方法を採りました。

これは、コンストラクタで型の文字列を指定しても実現できることですので、
移植性を考慮して、その方法に変えようと思います。