Diferença entre funções-membro para uma classe de modelo definida dentro e fora da classe
Existe uma diferença entre definir funções-membro para uma classe de modelo dentro da declaração de classe e fora?
Definido dentro:
template <typename T>
class A
{
public:
void method()
{
//...
}
};
Definido fora:
template <typename T>
class B
{
public:
void method();
};
template <typename T>
void B<T>::method()
{
//...
}
Para classes não modelo, essa é a diferença entre métodos inline e não inline. Isso também é verdade para as classes de modelo?
O padrão para a maioria dos meus colegas é fornecer definições dentro da classe, mas eu sempre preferi definições fora da classe. Minha preferência é justificada?
Editar: Suponha que todo o código acima seja fornecido no arquivo de cabeçalho da classe.