> В момент инстанцирования компилятору должно быть известно > тело шаблонной функции. Это обычно достигается либо всякими > хитрыми опциями (помнится, когда-то у Борланда можно было > скомпилить cpp-файл с телом шаблона с одним ключом, а все > остальные файлы, его использующие, с другим), либо > (наиболее популярный вариант) включением тела шаблонных > функций и реализаций шаблонных классов в хедеры. Открыл я свой старый, потрепаный справочник, и ничего в нем не нашел =(((, Потом написал сюда, похоже, что то-же =(((
В момент инстанцирования компилятору должно быть известно тело шаблонной функции. Это обычно достигается либо всякими хитрыми опциями (помнится, когда-то у Борланда можно было скомпилить cpp-файл с телом шаблона с одним ключом, а все остальные файлы, его использующие, с другим), либо (наиболее популярный вариант) включением тела шаблонных функций и реализаций шаблонных классов в хедеры.
(кстати, вопрос вполне годится на занесение в FAQ)04.05.03 12:23 Автор: Ultra Статус: Незарегистрированный пользователь
> В момент инстанцирования компилятору должно быть известно > тело шаблонной функции. Это обычно достигается либо всякими > хитрыми опциями (помнится, когда-то у Борланда можно было > скомпилить cpp-файл с телом шаблона с одним ключом, а все > остальные файлы, его использующие, с другим), либо > (наиболее популярный вариант) включением тела шаблонных > функций и реализаций шаблонных классов в хедеры. Открыл я свой старый, потрепаный справочник, и ничего в нем не нашел =(((, Потом написал сюда, похоже, что то-же =(((
Дык вроде ответили04.05.03 13:54 Автор: amirul <Serge> Статус: The Elderman
> > (наиболее популярный вариант) включением тела > шаблонных > > функций и реализаций шаблонных классов в хедеры. > Открыл я свой старый, потрепаный справочник, и ничего в нем > не нашел =(((, Потом написал сюда, похоже, что то-же =((( Самая распространненная техника работы с шаблонами - включение тела шаблона в хедер (при этом он должен быть защищен от повторного включения). Скажем, весь STL так реализован, а его разработчики крепко подумали перед тем, как писать.
В общем, просто используй второй вариант (с хедером) и все.
ЗЫ: Если хочешь узнать на что конкретно матерится компилятор, то неплохо было бы запостить хотя бы коды ошибок, которые он выдает. Хотя скорее всего дело в том что компилятору нечего компилировать в cpp-шнике, т.к. нет ни одного использования (инстанцирования) этого шаблона.
[C++] А ты уверен, что оно тебе надо?04.05.03 12:28 Автор: Ktirf <Æ Rusakov> Статус: Elderman
> В момент инстанцирования компилятору должно быть известно > тело шаблонной функции. Это обычно достигается либо всякими > хитрыми опциями (помнится, когда-то у Борланда можно было > скомпилить cpp-файл с телом шаблона с одним ключом, а все > остальные файлы, его использующие, с другим), либо > (наиболее популярный вариант) включением тела шаблонных > функций и реализаций шаблонных классов в хедеры. Стандарт ISO/IEC для ЦПП содержит ключевое слово export для экспортирования шаблонов. Вот только я не знаю ни одного компилятора, который поддерживает стандарт в этом отношении :-)
Есть еще хитрое слово export04.05.03 12:07 Автор: Ultra Статус: Незарегистрированный пользователь
> Стандарт ISO/IEC для ЦПП содержит ключевое слово export для > экспортирования шаблонов. Вот только я не знаю ни одного > компилятора, который поддерживает стандарт в этом отношении > :-) 5 балов за содержательность =)))
> В момент инстанцирования компилятору должно быть известно > тело шаблонной функции. Это обычно достигается либо всякими > хитрыми опциями (помнится, когда-то у Борланда можно было > скомпилить cpp-файл с телом шаблона с одним ключом, а все > остальные файлы, его использующие, с другим), либо > (наиболее популярный вариант) включением тела шаблонных > функций и реализаций шаблонных классов в хедеры. А у gcc (точнее g++) такие ключи есть???