class foo
{
public:
void say_type_name()
{
std::cout << typeid(this).name() << std::endl;
}
};
int main()
{
foo f;;
f.say_type_name();
}
上記のコードは、g++を使用してubuntuマシンでP3fooを出力します。fooだけでなくP3fooを出力する理由がわかりません。次のようにコードを変更した場合
std::cout << typeid(*this).name() << std::endl;
3fooを出力します。
何かご意見は?