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 argument is not the rightmost, then all type parameters to the right of it also must be omitted. As of C++11, you can now use default type arguments for template type parameters in function templates.

Image
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.112.152