Function templates, class templates, SFINAE, template specialization, variadic templates, type traits, operator overloading, and exceptions.