При размышлении о необходимости шаблонов все больше убеждаюсь, что они - стрельба из пушки по воробьям.
Изначальное их предназначение - повышение производительности программиста.
Казалось бы, как здорово: написал ОДИН раз - и все  работает на всю оставшуюся жизнь.
Подставляй только тип - компилятор сам все сделает.
Но фокус- то в том, что то же самое можно делать и без включения в язык шаблонов. Например:
## Код:
```
typedef тип value_type;
class ИМЯ
{
  value_type fild;
...
};
```

То есть, класс пишется в терминах абстрактного типа, если уж так хочется универсальности. Для повторного использования меняется typedef.
Городить мощнейший аппарат в языке ради такой мелочи, как РУЧНАЯ замена одной строки - перебор.
Шаблоны:
1. Существенно усложнили язык
2. Существенно усложнили компилятор.
Хотя сделано, конечно, красиво.