Я часто использовал c ++ и шаблоны, в том числе более сложное метапрограммирование шаблонов, и мне кажется, что их полезность переоценена. Первоначально они были добавлены в язык с ++, задолго до создания с ++, чтобы использовать общие возможности программирования. Это просто позволяет сосредоточиться на логике кода без учета типов, потенциально делая код более понятным и пригодным для повторного использования.
Моя философия программирования состоит в том, чтобы понять оригинальное назначение и дизайн языка и его особенности, чтобы действительно ценить язык. Я считаю, что метапрограммирование шаблонов - это ублюдение шаблонов, и его следует избегать. Тем не менее, шаблоны полезны для определения универсальных типов более высокого уровня, таких как случай Tuples.