#include <iostream>
#include <type_traits>
struct dummy {
void one() { std::cout << "one\n"; }
void two() & { std::cout << "two\n"; }
void three() && { std::cout << "tree\n"; }
};
namespace std {
template<typename _Res, typename... _ArgTypes>
struct is_function<_Res(_ArgTypes...)&&>
: public true_type { };
}
int main() {
std::cout << std::boolalpha
<< std::is_member_function_pointer<decltype(&dummy::three)>::value
<< std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAKc3RydWN0IGR1bW15IHsKICAgICAgCiAgICAgIHZvaWQgb25lKCkgeyBzdGQ6OmNvdXQgPDwgIm9uZVxuIjsgfQogCiAgICAgIHZvaWQgdHdvKCkgJiB7IHN0ZDo6Y291dCA8PCAidHdvXG4iOyB9CiAKICAgICAgdm9pZCB0aHJlZSgpICYmIHsgc3RkOjpjb3V0IDw8ICJ0cmVlXG4iOyB9CiAgIH07IAogCm5hbWVzcGFjZSBzdGQgewogCnRlbXBsYXRlPHR5cGVuYW1lIF9SZXMsIHR5cGVuYW1lLi4uIF9BcmdUeXBlcz4KICAgIHN0cnVjdCBpc19mdW5jdGlvbjxfUmVzKF9BcmdUeXBlcy4uLikmJj4KICAgIDogcHVibGljIHRydWVfdHlwZSB7IH07Cn0KIAppbnQgbWFpbigpIHsKICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhCiAgICAgICAgICAgICA8PCBzdGQ6OmlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyPGRlY2x0eXBlKCZkdW1teTo6dGhyZWUpPjo6dmFsdWUgCiAgICAgICAgICAgICA8PCBzdGQ6OmVuZGw7Cn0=