fork download
  1. #include <stdarg.h>
  2. #include <stdio.h>
  3.  
  4. template<size_t N>
  5. int test(int x1, ...)
  6. {
  7. size_t n = N;
  8. va_list ap;
  9. va_start(ap, x1);
  10.  
  11. printf("test<N>\n");
  12.  
  13. int sum = x1;
  14.  
  15. for(size_t i = 1; i < n; ++i)
  16. sum += va_arg(ap, int);
  17.  
  18. va_end(ap);
  19.  
  20. return sum;
  21. }
  22.  
  23. template<>
  24. int test<3U>(int x1, ...)
  25. {
  26. size_t n = 3U;
  27. va_list ap;
  28. va_start(ap, x1);
  29.  
  30. printf("test<3>\n");
  31.  
  32. int sum = x1;
  33.  
  34. for(size_t i = 1; i < n; ++i)
  35. sum += va_arg(ap, int);
  36.  
  37. va_end(ap);
  38.  
  39. return sum;
  40. }
  41.  
  42. int main()
  43. {
  44. const int t2 = test<2>(1, 2);
  45. printf("%d\n", t2);
  46.  
  47. const int t3 = test<3>(1, 2, 3);
  48. printf("%d\n", t3);
  49.  
  50. return 0;
  51. }
  52.  
  53.  
  54.  
Success #stdin #stdout 0s 2852KB
stdin
Standard input is empty
stdout
test<N>
3
test<3>
6