RealistME |
C++. Templates - определение и реализация. 27.04.2011, 21:26 |
|
04/04/11 12
|
Доброго времени суток!
Такой вопрос: как правильно(с точки зрения стандартов C++) определять и реализовывать шаблон?
Есть такая проблема(и не у меня одного): Если определять шаблон в файле .h и реализовывать его в .cpp, то линкер выдает ошибку 2019, есть вариант явно инстанцировать шаблон перед реализацией, но это как-то не очень красиво.
Облазил кучу форумов и нигде не нашел(возможно слепой) каноничных решений. Спасибо за внимание.
|
|
|
|
|
venco |
Re: C++. Templates - определение и реализация. 27.04.2011, 21:51 |
|
Заслуженный участник |
|
04/05/09 4587
|
Хоть стандарт и декларирует возможность внешней реализации темплейтов, очень мало компиляторов это поддерживают (необходим специализированный линкер, с вызовом компилятора для использованных темплейтов). Поэтому приходится код темплейтов вставлять в хедер, часто не напрямую, а в отдельный файл с особым расширением типа .tcc или .inl, который включается хедером.
Иногда, если темплейтный код слишком большой, или использует внутренние хедеры, можно извратиться и явно инстанциировать темплейт для нескольких наборов параметров, но при этом приходится мириться с тем, что с непредусмотренными параметрами темплейт обломится на этапе линковки, как у Вас и произошло.
|
|
|
|
|
coll3ctor |
Re: C++. Templates - определение и реализация. 20.05.2011, 06:53 |
|
17/05/11 158
|
код то хотя бы уж приведите
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы