Templates
Templates get a whole section of their own for two reasons:
As described in the ARM, templates allow you to write generic classes and functions parameterised by types:

	template<class T>
	class List
	{
		// ...
	};
	List<string> names;

	template<class T>
	void print_list(const List<T>& list);

The following is a fairly complete list of the changes made by the committee to templates as they were described in the ARM: