fork download
  1. #include <iostream>
  2.  
  3. class Test
  4. {
  5. public:
  6. void foo()
  7. {
  8. std::cout << 0 << std::endl;
  9. }
  10.  
  11. template< int N >
  12. void fooN()
  13. {
  14. std::cout << N << std::endl;
  15. }
  16.  
  17. template< typename Fn >
  18. void invoke( Fn&& fn )
  19. {
  20.  
  21. (*this.*fn)();
  22. }
  23.  
  24. };
  25.  
  26.  
  27. int main( int args, char *argv[] )
  28. {
  29. Test test;
  30.  
  31. using Fn = decltype(&Test::fooN<1>);
  32.  
  33. test.invoke<Fn>( &Test::foo );
  34. test.invoke<Fn>( &Test::fooN<1> );
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
0
1