fork download
  1. #include <utility>
  2.  
  3. struct example
  4. {
  5. void f0(int, int)
  6. {
  7.  
  8. }
  9.  
  10. template<class T>
  11. void f1(T&&, int)
  12. {
  13.  
  14. }
  15. };
  16.  
  17. #define FWD(xs) ::std::forward<decltype(xs)>(xs)
  18.  
  19. template<class T, class... Ts, class... TArgs>
  20. void forwarder(void(T::*fptr)(Ts...), TArgs&&... xs)
  21. {
  22. T instance;
  23. (instance.*fptr)(FWD(xs)..., 0);
  24. }
  25.  
  26. int main()
  27. {
  28. forwarder(&example::f0, 10);
  29. forwarder(static_cast<void(example::*)(int&&, int)>(&example::f1), 10);
  30. return 0;
  31. }
Success #stdin #stdout 0s 3452KB
stdin
Standard input is empty
stdout
Standard output is empty