add a generic print function using variadic templates

Why? Because you can and it is quite useful ...