Листинг 13.14. Модуль явного инстанцирования для шаблона стека #include "TStackdef.h" #include<string>
using std::string;
template class T5tack<double>;
template class TStack<string>;
ПРИМЕЧАНИЕ
В системе Visual C++.NET 2003 директивы явного инстанцирования можно писать без ключевого слова class, например template TStack<double>; это очевидная ошибка разработчиков компилятора.
Обратите внимание на два подключения: • к главной функции (см. листинг 13.11) подключается только определение интерфейса класса-шаблона TStack;
• к модулю с директивами инстанцирования (см. листинг 13.14) подключается модуль с реализациями методов класса-шаблона (см. листинг 13.10).
Таким образом, явное инстанцирование обеспечивает нам как раз такую организацию файлов с шаблонами, которую мы хотели иметь с самого начала. Однако этот способ тоже не свободен от недостатков. Как указано в [28], программист должен тщательно следить за тем, какой тип шаблона инстанцируется. Для больших проектов это быстро становится слишком обременительным, поэтому применять этот метод в промышленных проектах не рекомендуется1. ПРИМЕЧАНИЕ
В [28] описан определенный еще в стандарте [1] механизм экспорта шаблонов, который обеспечивает организацию файлов с шаблонами, известную как модель разделения. Однако на момент написания книги очень мало компиляторов поддерживали эту модель. В частности, ни Visual C++.NET 2003, ни С++ Builder 6 эту модель не поддерживают, поэтому останавливаться мы на ней не будем.
Опубликовал Kest
January 20 2014 23:56:02 ·
1 Комментариев ·
3456 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Максим Костенко January 28 2014 18:23:53
Работал с программой C++ давным-давно, вижу, что развитие идет программных кодов с каждым кодом, что показывает хорошую репутацию C++. Не знаю, почему забросил занятие с кодами, но, наверное, для меня лучше, когда я могу работать по созданному уже кем-то шаблону) Магазины - создавать сложно, а вот руководить - куда проще, да и программирование - это для всех, как говориться - каждому свое
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.