6 / 6 / 3
Регистрация: 06.02.2013
Сообщений: 71
|
|
1 | |
Инстанцирование шаблонного класса11.02.2013, 15:42. Показов 4540. Ответов 4
Метки нет Все метки)
(
Уважаемые форумчане! Помогите в не сложном, как я полагаю, для Вас вопросе. Имеется шаблонный
класс-контейнер оформленный в виде модуля (два файла: файл интерфейса "name.h" и файл реализации "name.cpp"). При его использовании нужно каждый раз лезть в его файл реализации "name.cpp" и вбивать туда явное инстанцирование на те типы данных, с которыми данный класс-контейнер будет использоваться. Что-то типа: // явное инстанцирование шаблонного класса на тип данных - int. template class TCls<int> // явное инстанцирование шаблонного класса на тип данных - double. template class TCls<double> Это очень не удобно, тем более, если данный класс-контейнер сам в свою очередь ссылается на другие шаблонные классы. Ведь тогда надо лезть и вбивать явное инстанцирование и в эти шаблонные классы! Можно ли как-ни-будь избавиться от этого неудобства? И что такое неявное инстанцирование шаблонного класса? Где можно почитать об этом пояснее? Заранее всем благодарен!
0
|
|
11.02.2013, 15:42 | |
Ответы с готовыми решениями:
4
Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? Вызов метода у шаблонного поля, шаблонного класса
Возможно ли создание объекта шаблонного класса в функции этого класса? |
![]() 5053 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
|
|
14.02.2013, 11:42 | 2 |
Свести объявление и реализацию в один файл, не?
0
|
6 / 6 / 3
Регистрация: 06.02.2013
Сообщений: 71
|
||||||
09.03.2013, 10:18 [ТС] | 3 | |||||
Огромное Вам спасибо silent_1991! Помогли мне разобраться в этом вопросе. Да, оформление Шаблонного Класса в виде одного заголовочного файла, видимо, решает проблему! Вы помогли мне понять смысл всего этого. Именно так написан STL. Хотя в случаях, когда Шаблонный Класс разрастается до внушительных размеров, это и не очень удобно,
в смысле трудности навигации по большому файлу. Я же, задавая вопрос, скорее имел в виду какой-либо "хитрый прием". Сам я для себя придумал такую методику: - Во все файлы реализации используемых в проекте Шаблонных Классов (в самую нижнюю их часть) включаю примерно такой текст:
на заказанные в файле инстанцирования "Cls.ins" типы. Конечно убежден, что это неуклюжее и далеко не лучшее решение ...
0
|
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
|
||||||
09.03.2013, 11:04 | 4 | |||||
Если работаете в MSVC, то можно использовать #pragma region %название%:
0
|
6 / 6 / 3
Регистрация: 06.02.2013
Сообщений: 71
|
|
10.03.2013, 13:57 [ТС] | 5 |
- Спасибо Desu_Is_A_Lie за регионы! Я вообще-то привык к C++Builder v.6, но насколько я знаю Borland
уже довольно давно выпустил Borland Developer Studio (BDS) - общая среда для Delphi, C++Builder, C#Builder и т.д. А там регионы по моему работают. Надо переходить, если она, конечно, нормально работает.
0
|
10.03.2013, 13:57 | |
Помогаю со студенческими работами здесь
5
Создание Шаблонного класса Обявление шаблонного класса Объявление шаблонного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |