|
RealistME |
|
|
|
Доброго времени суток!
Такой вопрос: как правильно(с точки зрения стандартов C++) определять и реализовывать шаблон?
Есть такая проблема(и не у меня одного): Если определять шаблон в файле .h и реализовывать его в .cpp, то линкер выдает ошибку 2019, есть вариант явно инстанцировать шаблон перед реализацией, но это как-то не очень красиво.
Облазил кучу форумов и нигде не нашел(возможно слепой) каноничных решений. Спасибо за внимание.
|
|
|
|
 |
|
venco |
|
|
|
Хоть стандарт и декларирует возможность внешней реализации темплейтов, очень мало компиляторов это поддерживают (необходим специализированный линкер, с вызовом компилятора для использованных темплейтов). Поэтому приходится код темплейтов вставлять в хедер, часто не напрямую, а в отдельный файл с особым расширением типа .tcc или .inl, который включается хедером.
Иногда, если темплейтный код слишком большой, или использует внутренние хедеры, можно извратиться и явно инстанциировать темплейт для нескольких наборов параметров, но при этом приходится мириться с тем, что с непредусмотренными параметрами темплейт обломится на этапе линковки, как у Вас и произошло.
|
|
|
|
 |
|
coll3ctor |
|
|
|
код то хотя бы уж приведите
|
|
|
|
 |