Arquivos .h e .cpp separados na implementação da classe de modelo

Eu estou tentando escrever uma classe de modelo que pode formar classes dependendo da<class> Eu passo. O problema é que não posso declarar e definir no mesmo.h Arquivo. No meu projeto, a ferramenta UTF só funciona com o.cpp arquivos (para cobertura de código, etc.). Eu vi em um blog que eles dizem "Adicionar.cpp ao invés de.h” Isso é aconselhável?

Template.h

#ifndef TEMPLATE_H_
#define TEMPLATE_H_

template<class T>
class Template
{
public:
    T Add(T a,T b);
};

#endif /* TEMPLATE_H_ */

Template.cpp

#include "Template.h"

template<class T>
T Template<T>::Add(T a, T b)
{
    return a+b;
}

Main.cpp

#include "Template.cpp" //Is this a good practise? 
#include <iostream>

int main(int argc, char **argv) {
    Template<int> obj;
    std::cout<<obj.Add(3,4)<<std::endl;
}

Se isso não for aconselhável, então como resolvo esse problema?export?

questionAnswers(2)

yourAnswerToTheQuestion