Самые важные вещи о шаблонах C ++… извлеченные уроки - PullRequest
14 голосов
/ 01 марта 2009

Что вы знаете о шаблонах наиболее важно: скрытые функции, распространенные ошибки, лучшие и полезные практики, советы ... распространенные ошибки / недосмотр / предположения

Я начинаю реализовывать большую часть своей библиотеки / API с использованием шаблонов и хотел бы собрать наиболее распространенные шаблоны, советы и т. Д., Найденные на практике.

Позвольте мне формализовать вопрос: что самое важное вы узнали о шаблонах?

Пожалуйста, попробуйте привести примеры - это будет легче понять, в отличие от запутанных и чрезмерно сухих описаний

Спасибо

Ответы [ 12 ]

0 голосов
/ 06 апреля 2016

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

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

0 голосов
/ 01 марта 2009

Важно понимать отдельную компиляцию, и вероятность увеличения размера исполняемого файла увеличивается. Если вы создадите экземпляр шаблона с одним и тем же типом в нескольких файлах C ++, вы получите тип, воспроизводимый несколько раз, по крайней мере на некоторых компиляторах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...