fork(1) download
  1. #include <iostream>
  2. #include <utility>
  3.  
  4. #define APIENTRY
  5. using UINT = unsigned;
  6.  
  7. typedef UINT(APIENTRY *PFNFOO)(UINT, double);
  8.  
  9. class Foo
  10. {
  11. public:
  12. static UINT APIENTRY pfnFoo(UINT x, double y)
  13. {
  14. return (UINT)(x*y);
  15. }
  16. };
  17.  
  18. template<typename RET, typename... PARAMS, typename...Args>
  19. inline RET CallFunc(RET(*pfn)(PARAMS...), Args&&... args)
  20. {
  21. return (*pfn)(std::forward<Args>(args)...);
  22. }
  23.  
  24. int main()
  25. {
  26. std::cout << CallFunc(&Foo::pfnFoo, 100, 0.5f) << std::endl;
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
50