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.

questionAnswers(3)

yourAnswerToTheQuestion