Is there a way to pass auto as an argument to another function?
int function(auto data) { //DOES something }
Templates are the way you do this with normal functions:
template int function(T data) { //DOES something }
Alternatively, you could use a lambda:
auto function = [] (auto data) { /*DOES something*/ };