variadic template function