#include <iostream>
#include <typeinfo>
#include <cxxabi.h>
using namespace std;
class O {
public:
virtual void vfunction()
{
cout << "hello";
}
};
class C : public O
{
public:
C() {};
};
int main() {
// your code goes here
O* varb = new C();
char *realname;
int status;
// exception classes not in <stdexcept>, thrown by the implementation
// instead of the user
realname = __cxxabiv1::__cxa_demangle( typeid(*varb).name(), nullptr, 0, &status );
cout << realname << endl;
cout << __cxxabiv1::__cxa_demangle( typeid(varb).name(), nullptr, 0, &status );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CiNpbmNsdWRlIDxjeHhhYmkuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIE8gewpwdWJsaWM6Cgl2aXJ0dWFsIHZvaWQgdmZ1bmN0aW9uKCkKCXsKCQljb3V0IDw8ICJoZWxsbyI7Cgl9Cn07CgpjbGFzcyBDICA6IHB1YmxpYyBPIAp7CglwdWJsaWM6CglDKCkge307Cn07CgoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCglPKiB2YXJiID0gbmV3IEMoKTsKICAgIAogICAgCiAgICBjaGFyICAgKnJlYWxuYW1lOwogICAgaW50IHN0YXR1czsKCiAgLy8gZXhjZXB0aW9uIGNsYXNzZXMgbm90IGluIDxzdGRleGNlcHQ+LCB0aHJvd24gYnkgdGhlIGltcGxlbWVudGF0aW9uCiAgLy8gaW5zdGVhZCBvZiB0aGUgdXNlcgogIHJlYWxuYW1lID0gX19jeHhhYml2MTo6X19jeGFfZGVtYW5nbGUoIHR5cGVpZCgqdmFyYikubmFtZSgpLCBudWxscHRyLCAwLCAmc3RhdHVzICk7CiAgCiAgY291dCA8PCByZWFsbmFtZSA8PCBlbmRsOwogICAgCiAgICBjb3V0IDw8IF9fY3h4YWJpdjE6Ol9fY3hhX2RlbWFuZ2xlKCB0eXBlaWQodmFyYikubmFtZSgpLCBudWxscHRyLCAwLCAmc3RhdHVzICk7CgkKCXJldHVybiAwOwp9