10.6. Composite Templates

The applications we have shown so far use a single TYPE for template class instantiations. Templates are, in fact, much more general than this. You can, for instance, apply templates recursively by nesting template types for TYPE, a technique called template composition. Here's the format with String objects and several template containers.

template <class TYPE> class A { . . . }; 
template <class TYPE> class B { . . . };
template <class TYPE> class C { . . . };

A<String> c1;                    // container of String
A< B<String> > c2;               // container of B<String>
A< B< C<String> > > c3;          // container of B< C<String> >
A< A< A<String> > > c4;          // container of A< A<String> >

We instantiate four A containers, all with different types. The first ...

Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.