| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Экспорт шаблонов |
| Автор: dbcoder 31.10.2005, 20:40 |
| Здравствуйте. Когда я выписываю в заголовочном файле шаблон template функции или класса, то компилятор выдаёт следующее: [Linker error] Unresolved external 'void function<int>(int)' referenced from C:.../TEST.OBJ Здесь троеточием я заменил путь к файлу. Предполагается, что в .H файле template <class Type> void function(Type x); И функция реализуется в .cpp и является пустой. Если компилятор ругается из-за того, что функция является шаблоном, то как это обойти? |
| Автор: DeadSoul 31.10.2005, 21:10 |
| Весь шаблон в h-файл |
| Автор: threef 31.10.2005, 21:26 |
| Шаблон не компилируется, он должен полностью присутствовать в header. Посмотри <vector>. |
| Автор: np9mi7 31.10.2005, 22:33 | ||
|
| Автор: Daevaorn 1.11.2005, 10:36 |
| http://www.gamedev.ru/faq/?id=30 |
| Автор: pablo 1.11.2005, 21:17 |
| В стандарте языка, экспортирование шаблонов существует, но его реализовали буквально пара компаний, так что придётся довольствоватся тем что есть. А также, использование экспортирования шаблонов крайне не рекомендуемо(даже если это реализовано и поддерживается конпилятором) |
| Автор: Daevaorn 1.11.2005, 21:50 | ||
А почему? |
| Автор: DeadSoul 1.11.2005, 22:27 | ||
http://forum.sources.ru/index.php?showtopic=118318&view=findpost&p=887458 |
| Автор: CPlusPlusFAN 2.11.2005, 18:12 |
| А зачем нужны шаблоны, если ни один из современных компиляторов не поддерживает их экспорт? |
| Автор: Neitron 2.11.2005, 18:28 |
| CPlusPlusFAN Ты наверное немного не понел, чего делать нельзя.... |
| Автор: Guest 2.11.2005, 18:29 |
| Отсутствие экспортирования означает что интерфейс и его реализация для шаблона должны находиться в одном файле. А ответ --- Затем, чтобы их конкретизовывать во вне хэдера. Затем, зачем собственно они были созданы. |
| Автор: comcon1 2.11.2005, 18:30 |
| Сорри - это был я. |