#include <iostream>
#include <utility>

namespace io
{
	template <std::size_t N>
	class CSVReader
	{
	public:
		template <typename ...T>
		void read_row(T&&...a) 
		{
			std::cout << N << std::endl;
		}
	};
	
	
}

namespace Detail
{
template <typename Reader, typename T, std::size_t... I>
void read_row(Reader& in, T* data, std::index_sequence<I...>)
{
     in.read_row(data[I]...); // A trick here
} 

}

template <std::size_t N, typename T>
void read_row(io::CSVReader<N>& in, T* data)
{
     Detail::read_row(in, data, std::make_index_sequence<N>{});
} 
int main() {
	int a[7];
	io::CSVReader<7> r;
	read_row(r, a);
	// your code goes here
	return 0;
}