Явное создание экземпляра
Явное создание экземпляра позволяет создать экземпляр шаблонного класса или функции без виртуальных использование его в коде.Поскольку это полезно при создании файлов библиотеки (lib), использующие шаблоны для распределения, uninstantiated определения шаблона не сохраняются в файлы объектов (obj).
Явно создает следующие MyStack для int переменные и 6 элементов.
template class MyStack<int, 6>;
Это выписка создает экземпляр MyStack без резервирование любое хранилище для объекта; код создается для всех элементов.
Следующие явно создает только функцию-член конструктора:
template MyStack<int, 6>::MyStack( void );
Шаблоны функции могут быть явно создан с redeclaring их с определенным аргументом типа, как указано в примере in Экземпляр шаблона функции.
Только для систем Microsoft
Можно использовать extern ключевое слово для предотвращения автоматического создания элементов.Примеры.
extern template class MyStack<int, 6>;
Аналогично можно пометить конкретные элементы как внешний и не создаются следующим образом:
extern template MyStack<int, 6>::MyStack( void );
Примечание |
---|
extern ключевое слово в специализации применяется только к функции-членам указанным вне тела класса.Функции, определенные внутри объявления класса являются встроенными функциями и всегда создается. |