Как вынести метод шаблонного класса из хэдера в cpp ?
Ответ Необходимо помнить, что шаблон порождает код класса только тогда, когда вы употребляете этот шаблон в программе с конкретными параметрами. Это означает, что нельзя скомпилировать модуль содержащий просто шаблон класса. Шаблон — это еще не тип (в C#, напротив, угловые скобки говорят о типе Generic). Таким образом, реализация метода должна быть в том модуле, где этот метод используется, иначе получите Unresolved symbol. Вот пример, который скомпилировался в MSVS 2008: foo.h: #pragma once template class Foo { public: T bar(T a) const } main.cpp #include "foo.h" template T Foo::bar(T a) const { return a } int main(int argc, char *argv[]) { Foo a int b = a.bar(3) return 0 } Очевидно, в данном примере это равносильно варианту, когда реализация метода расположена в заголовочном файле. А вообще, если у Вас возникла такая задача, стоит задуматься, на верном ли Вы пути, так сказать :)