fork download
  1. #include <array>
  2.  
  3. template <std::size_t, typename T>
  4. using alwaysT = T;
  5.  
  6. template <typename T, typename Seq> struct TestHelper;
  7.  
  8. template <typename T, std::size_t ... Is>
  9. struct TestHelper<T, std::index_sequence<Is...>>
  10. {
  11. TestHelper(alwaysT<Is, T>... arr) {}
  12. };
  13.  
  14. template<std::size_t V>
  15. class Test : TestHelper<const std::array<int, 3>&, std::make_index_sequence<V>>
  16. {
  17. public:
  18. using TestHelper<const std::array<int, 3>&, std::make_index_sequence<V>>::TestHelper;
  19.  
  20. Test() = default;
  21. };
  22.  
  23. int main()
  24. {
  25. auto t = Test<1>({ 1, 2, 3 });
  26. auto t2 = Test<2>(
  27. { 1, 2, 3 },
  28. { 4, 5, 6 }
  29. );
  30.  
  31. static_cast<void>(t); // Avoid warning for unused variable
  32. static_cast<void>(t2); // Avoid warning for unused variable
  33. }
  34.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty