fork(6) download
  1. #include <iostream>
  2. #include <utility>
  3.  
  4. namespace io
  5. {
  6. template <std::size_t N>
  7. class CSVReader
  8. {
  9. public:
  10. template <typename ...T>
  11. void read_row(T&&...a)
  12. {
  13. std::cout << N << std::endl;
  14. }
  15. };
  16.  
  17.  
  18. }
  19.  
  20. namespace Detail
  21. {
  22. template <typename Reader, typename T, std::size_t... I>
  23. void read_row(Reader& in, T* data, std::index_sequence<I...>)
  24. {
  25. in.read_row(data[I]...); // A trick here
  26. }
  27.  
  28. }
  29.  
  30. template <std::size_t N, typename T>
  31. void read_row(io::CSVReader<N>& in, T* data)
  32. {
  33. Detail::read_row(in, data, std::make_index_sequence<N>{});
  34. }
  35. int main() {
  36. int a[7];
  37. io::CSVReader<7> r;
  38. read_row(r, a);
  39. // your code goes here
  40. return 0;
  41. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
7