Extensively incorrect.
void print1(auto x){std::cout<< x;}
is a function template template <class T>
void print1(T x){std::cout<< x;}
This is not valid C++14 however, so it doesn't compile. If you replace these, you'll probably still get a stack overflow while expanding the templates because there are almost 7000 arguments to a single function call.