#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();
}