По последним данным, на рынке продается по крайней мере 2 768 942 книги о С++, не говоря уже о всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями. И все же в этом изобилии наблюдается удручающее однообразие.
Увы, такая возможность существует, но пожалуйста, пользуйтесь ею с максимальной осторожностью. Вложенные шаблоны не только плохо читаются, но и генерируют огромное количество кода при расширении. Помните, что при использовании шаблона самого верхнего уровня будут расширены все шаблоны.
template <class Type>
class B {...};
template <class Type>
class A {
B<A<Type>>* member; // Жуть!
};
Посмотрите на этот омерзительный синтаксический мусор. При вложении параметризованных типов всегда происходит нечто подобное. Позднее мы поговорим о том, как переделать этот фрагмент; а пока избегайте вложенных параметризованных типов, как чумы.
Просматривать полку книг о С++ в книжном магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах.