C ++ работает по принципу:
Вы платите за то, что используете .
Шаблон кода создает двоичные файлы только для кода, который вы используете / Instantiate.
То, что вы компилируете против стандартной библиотеки, содержащей сотни контейнеров STL, не означает, что ваш объектный код включает в себя все из них, а только те, которые вы используете.
Шаблоны реализуют полиморфизм времени компиляции. Копия шаблонной функции создается для каждого экземпляра, который вы выполняете с другим типом данных, то же самое относится и к шаблонным классам. Этот код далее компилируется для создания двоичных файлов. Таким образом, размер бинарного файла не будет больше, чем тот, который выдает ваш код без шаблонов.