#include <iostream>
#include <type_traits>
int main() {
struct dummy {
void one() {}
void two() & {}
void three() && {}
};
std::cout << std::boolalpha;
std::cout << std::is_member_function_pointer<decltype(&dummy::one)>::value << std::endl;
std::cout << std::is_member_function_pointer<decltype(&dummy::two)>::value << std::endl;
std::cout << std::is_member_function_pointer<decltype(&dummy::three)>::value << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgoKaW50IG1haW4oKSB7CiAgIHN0cnVjdCBkdW1teSB7CiAgICAgIAogICAgICB2b2lkIG9uZSgpIHt9CgogICAgICB2b2lkIHR3bygpICYge30KCiAgICAgIHZvaWQgdGhyZWUoKSAmJiB7fQogICB9OwoKICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhOwogICBzdGQ6OmNvdXQgPDwgc3RkOjppc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcjxkZWNsdHlwZSgmZHVtbXk6Om9uZSk+Ojp2YWx1ZSA8PCBzdGQ6OmVuZGw7CiAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyPGRlY2x0eXBlKCZkdW1teTo6dHdvKT46OnZhbHVlIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXI8ZGVjbHR5cGUoJmR1bW15Ojp0aHJlZSk+Ojp2YWx1ZSA8PCBzdGQ6OmVuZGw7Cn0K