template<class ... Types> struct Tuple {};
A parameter pack is a template parameter accepting zero or more template arguments. If a template has at least one parameter pack is a variadic template.