История изменений
Исправление Dendy, (текущая версия) :
Вы немного перепутали:
.cpp:
template class A<int>;
template class A<double>;
template class A<float>;
Да, так код для конкретных специализаций попадёт в объектник и к нему можно будет прилинковаться.
Далее, как уже сказали, вынести код из .cpp в заголовочник с шаблоном по понятным причинам, чтобы компилятор мог генерировать код для произвольных параметров шаблона.
И ещё далее, чтобы ускорить компиляцию «тяжёлых» заголовочников их можно прекомпилировать, man gcc -x c++header и gcc -include (-include-pch для clang).
Исходная версия Dendy, :
Вы немного перепутали:
.cpp:
template A<int>;
template A<double>;
template A<float>;
Да, так код для конкретных специализаций попадёт в объектник и к нему можно будет прилинковаться.
Далее, как уже сказали, вынести код из .cpp в заголовочник с шаблоном по понятным причинам, чтобы компилятор мог генерировать код для произвольных параметров шаблона.
И ещё далее, чтобы ускорить компиляцию «тяжёлых» заголовочников их можно прекомпилировать, man gcc -x c++header и gcc -include (-include-pch для clang).