Default template arguments

Just like ordinary function default arguments, default values and types may be given for template arguments and the argument value omitted in the invocation of the template.
	template<int N = 42, class T = char>
	class Array
	{
		// ...
		T	data[N];
	};
	Array<100, int>	a100_ints;
	Array<256>	a256_char;
	Array<>		a42_char;
Note that the <> cannot be omitted since that would leave Array which is a template name as opposed to Array<> which is a type name.