fork download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4.  
  5. template<typename R, typename T>
  6. void test(R T::*) {
  7. std::cout << std::is_member_function_pointer<R T::*>::value
  8. << '\t' << std::is_function<R>::value << std::endl;
  9. }
  10.  
  11.  
  12. int main() {
  13. struct dummy {
  14.  
  15. void one() {}
  16.  
  17. void two() & {}
  18.  
  19. void three() && {}
  20. };
  21.  
  22. std::cout << std::boolalpha;
  23. test(&dummy::one);
  24. test(&dummy::two);
  25. test(&dummy::three);
  26. }
  27.  
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
true	true
false	false
false	false