fork(1) download
  1. #include <initializer_list>
  2. #include <algorithm>
  3. #include <iostream>
  4.  
  5. template <typename T, std::size_t N>
  6. struct Array
  7. {
  8. T body[N];
  9.  
  10. Array(std::initializer_list<T> const& list)
  11. {
  12. std::copy(list.begin(), list.end(), body);
  13. }
  14.  
  15. operator T* () { return body; }
  16. constexpr std::size_t size() const { return N; }
  17.  
  18. T operator [](std::size_t n) const
  19. {
  20. return body[n];
  21. }
  22.  
  23. T* begin() const { return body; }
  24.  
  25. T* end() const { return body + N; }
  26.  
  27. T& at(std::size_t offset) const
  28. {
  29. return body[offset];
  30. }
  31. };
  32.  
  33. int main()
  34. {
  35. Array<int, 4> x = {4, 2, 1, 4};
  36.  
  37. std::cout << x.size();
  38. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
4