fork(1) download
  1. #include <iostream>
  2. #include <cassert>
  3.  
  4. template<typename T, size_t N=128>
  5. struct A {
  6. size_t count;
  7. T data[N];
  8. };
  9.  
  10. template <typename T, size_t N=128>
  11. struct B {
  12. int a;
  13. A<T, N> b;
  14. };
  15.  
  16. template <typename T, typename...U>
  17. B<T, sizeof...(U)+1> make_b(int a, const T& t, const U&...u)
  18. {
  19. constexpr auto size = sizeof...(U) + 1;
  20. return {a, {size, {t, u...}}};
  21. }
  22.  
  23. int main() {
  24.  
  25. const auto test = make_b(42, 1, 2, 3, 4, 5);
  26.  
  27. assert(test.a == 42);
  28. assert(test.b.count == 5);
  29. assert(test.b.data[0] == 1);
  30. assert(test.b.data[4] == 5);
  31. }
  32.  
Success #stdin #stdout 0s 4396KB
stdin
Standard input is empty
stdout
Standard output is empty