#include <iostream>
#include <typeinfo>
struct Demo {
void none() { std::cout << typeid(this).name() << "\n"; }
void c() const { std::cout << typeid(this).name() << "\n"; }
void v() volatile { std::cout << typeid(this).name() << "\n"; }
void cv() const volatile { std::cout << typeid(this).name() << "\n"; }
};
int main() {
Demo d;
d.none();
d.c();
d.v();
d.cv();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CgpzdHJ1Y3QgRGVtbyB7Cgl2b2lkIG5vbmUoKSB7IHN0ZDo6Y291dCA8PCB0eXBlaWQodGhpcykubmFtZSgpIDw8ICJcbiI7IH0KCXZvaWQgYygpIGNvbnN0IHsgc3RkOjpjb3V0IDw8IHR5cGVpZCh0aGlzKS5uYW1lKCkgPDwgIlxuIjsgfQoJdm9pZCB2KCkgdm9sYXRpbGUgeyBzdGQ6OmNvdXQgPDwgdHlwZWlkKHRoaXMpLm5hbWUoKSA8PCAiXG4iOyB9Cgl2b2lkIGN2KCkgY29uc3Qgdm9sYXRpbGUgeyBzdGQ6OmNvdXQgPDwgdHlwZWlkKHRoaXMpLm5hbWUoKSA8PCAiXG4iOyB9Cn07CgppbnQgbWFpbigpIHsKCURlbW8gZDsKCWQubm9uZSgpOwoJZC5jKCk7CglkLnYoKTsKCWQuY3YoKTsKfQ==