18.5. Default Arguments for Template Type Parameters

In addition, a type parameter can specify a default type argument. For example, the C++ standard’s stack container adapter class template begins with:

template < class T, class Container = deque< T > >

which specifies that a stack uses a deque by default to store the stack’s elements of type T. The declaration

stack< int > values;

creates a stack of ints class-template specialization (behind the scenes) and uses it to instantiate the object named values. The stack’s elements are stored in a deque<int>.

Default type parameters must be the rightmost (trailing) parameters in a template’s type-parameter list. When you instantiate a template with two or more default arguments, if an omitted ...

Get C++11 for Programmers, Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.