C++コードは、パラメータのランタイムクラスを印刷するtypeid
を使用して、以下の:テンプレートメソッドでtypeidを使用しているときにC4100警告を取り除くにはどうすればよいですか?
#include <iostream>
class Foo
{
};
class Bar: public Foo
{
};
template <class O> void printTypeName(O& object)
{
std::cout << typeid(object).name();
}
int main(void)
{
Bar x;
printTypeName(x);
}
Foo
が多型ではないので、VS C++タイプ情報を決定するためにオブジェクトを使用し
を上昇させませんC4100警告(「参照されていない仮パラメータ」)。
単純なメソッド呼び出しでオブジェクト型を出力する可能性を残しつつ、警告を取り除く方法はありますか?私は警告を無効にする必要はありません。
は、[Gでは正常に動作++](http://www.ideone.com/yDKIq)。 – iammilind
非ポリモーフィック型に 'typeid'を適用すると、警告を表示するのが良いと思います。 'Foo'に仮想デストラクタを追加してみてください。 MSVCが警告を省略した可能性があります。 –
@Johannes非多型型に 'typeid'を適用すると何が問題になりますか? –