fork download
  1. #include <iostream>
  2. #include <array>
  3. #include <utility>
  4. #include <initializer_list>
  5.  
  6. template <typename T>
  7. class A
  8. {
  9. public:
  10. A(std::initializer_list<std::array<T, 1>> i);
  11.  
  12. virtual ~A() = default;
  13. };
  14.  
  15. template <typename T>
  16. A<T>::A(std::initializer_list<std::array<T, 1>> i)
  17. {
  18. std::cout << i.size() << std::endl;
  19. }
  20.  
  21. template <typename T>
  22. class B : public A<T>
  23. {
  24. public:
  25. template <typename... Args>
  26. B(Args&&... args);
  27. };
  28.  
  29. template <typename T>
  30. template <typename... Args>
  31. B<T>::B(Args&&... args) : A<T>{std::array<T, 1>{std::forward<Args>(args)}...}
  32. {
  33.  
  34. }
  35.  
  36. int main()
  37. {
  38. B<int> b{ 1, 2, 3, 4, 5, 6, 7 };
  39. return 0;
  40. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
7