Templates and generic programming
T.49
По возможности избегайте стирания типов
Причина
Стирание типов вводит дополнительный уровень косвенности, скрывая информацию о типах за отдельной границей компиляции.
Пример
???
Исключения: Иногда стирание типов уместно, например для std::function.
Контроль
???
Примечание
T.def: Определения шаблонов
Определение шаблона (класса или функции) может содержать произвольный код, поэтому исчерпывающий обзор этой темы потребовал бы полного изложения техник программирования на C++. Однако данный раздел сосредоточен на том, что специфично для реализации шаблонов. В частности, он сосредоточен на зависимости определения шаблона от его контекста.