fork download
  1. #include <iostream>
  2. #include <utility>
  3.  
  4. struct A1 {
  5. A1() {
  6. printf("A1() called\n");
  7. }
  8.  
  9. A1(std::size_t i) {
  10. printf("A1(%d) called\n", i);
  11. }
  12.  
  13. A1(std::size_t i, std::size_t j) {
  14. printf("A1(%d, %d) called\n", i, j);
  15. }
  16. };
  17.  
  18. struct A2 {
  19. A2(std::size_t i, std::size_t j, double k) {
  20. printf("A2(%d, %d, %lf) called\n", i, j, k);
  21. }
  22. };
  23.  
  24. template <class T, size_t Size>
  25. class B {
  26. template<typename Arg1, typename ...Args, size_t... Is>
  27. B(std::index_sequence<Is...>, const Arg1 &arg1, const Args &...args) :
  28. tab{ {(void(Is), arg1), args... }... }
  29. {}
  30.  
  31. public:
  32.  
  33. T tab[Size];
  34.  
  35. B() = default;
  36.  
  37. template<typename ...Args>
  38. B(const Args &...args)
  39. : B(std::make_index_sequence<Size>(), args...) {}
  40. };
  41.  
  42. int main() {
  43. static constexpr size_t Size = 100;
  44. B<A1, Size> b1(size_t(11), size_t(17));
  45. B<A1, Size> b1a(size_t(11));
  46. B<A1, Size> b1b;
  47. B<A2, Size> b2(size_t(11), size_t(17), 1.2);
  48. return 0;
  49. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11, 17) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1(11) called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A1() called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called
A2(11, 17, 1.200000) called