воскресенье, 24 марта 2019 г.

Шаблонная функция в нешаблонном классе

Такую функцию сделать можно. Но если схема компиляции раздельная (описание класса -в .h, а определение методов - в .cpp), то нужны дополнительные телодвижения.

Как пишут на stackoverflow, в конце cpp-шника придется явно выписывать все необходимые конкретизации шаблонного метода.

И приводят вот такой пример:
// .h file
class Foo
{
public:
template void some_method(T t);
}

// .cpp file
//...
template void Foo::some_method(T t) 
{//...}
//...

template void Foo::some_method < int >(int);
template void Foo::some_method < double >(double);

Комментариев нет: