Частенько во время написания кода возникает необходимость внесения в алгоритм каких-то уточнений для каких-то конкретных случаев или типов. Обычно это делается путем добавления каких-то переменных состояния, перегрузки функций, добавления аргументов в вызовы. Но существует более гибкий способ с т.н. классами свойств и стратегий.

tepmlates again, huh

Продолжение таки следует...

В материале использовалась книга Д. Вандервурда и Н. М. Джоссатиса "Шаблоны С++. Справочник разработчика".

UPD: Наконец-то переоформил вставки с кодом.