Programming Practice
Deitel and Deital, 4th edition, Chapters 22

22.3 Use a nontype parameter numberOfElements and a type parameter elementType to help create a template for the Array class developed in Chpater 18, C++ Operator Overloading. This template will enable array objects to be instantiated with a specified number of elements of a specified the element type at compile time.