3 Подсказки для использования шаблонов в C ++

3 Совета по использованию шаблонов в C ++ - манекены

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

  1. Во-первых, для шаблона не создается код (код генерируется после преобразования шаблона в конкретный класс или функцию). Это означает, что исходный файл cpp почти никогда не связан с шаблоном класса.

    Определение всего шаблона класса, включая все функции-члены, обычно содержится в файле include, чтобы он мог быть доступен для компилятора для expand.

  2. Во-вторых, шаблон шаблона не потребляет память, поэтому для создания шаблонов классов не существует штрафа, если они никогда не инстанцируются. С другой стороны, шаблон класса использует память каждый раз, когда он создается. код для Array потребляет память, даже если Array уже существует.

  3. Наконец, шаблон шаблона нельзя компилировать и проверять на наличие ошибок, пока он не будет преобразован в настоящий класс. Таким образом, программа, которая ссылается на массив шаблонов класса, может скомпилироваться, даже если массив содержит очевидные синтаксические ошибки. Ошибки не появятся до тех пор, пока не будет создан класс, такой как Array или Array.

Создание функции из шаблона называется экземпляром шаблона.