fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<typename ... Args>
  5. struct ParameterSize
  6. {
  7. static const uint value = 0;
  8. };
  9.  
  10. template<typename Type, typename... Remain>
  11. struct ParameterSize<Type, Remain...>
  12. {
  13. static const uint value = sizeof(Type) + ParameterSize<Remain...>::value;
  14. };
  15.  
  16. template <typename ReturnType, typename...Args>
  17. uint GetParameterSize(ReturnType(*method)(Args...))
  18. {
  19. return ParameterSize<Args...>::value;
  20. }
  21. void MyMethod3(int a, char b, int c )
  22. {
  23. }
  24.  
  25.  
  26. int main() {
  27. // your code goes here// Elsewhere
  28. uint size = GetParameterSize(&MyMethod3);
  29. cout << size << endl;
  30. return 0;
  31. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
9