Ho una template class al cui interno viene dichiarato un metodo: una funzione template.

codice:
template <typename T>
class myClass
{
	template <typename Go>
	void foo( Go apply )
	{
		Go( minnie );
	}
	
	long minnie;
};

Se implemento il metodo all'interno della classe stessa nessun problema, ma qual'è la sintassi corretta per porre all'interno della classe solo la dichiarazione del metodo e implementarla al di fuori? Inoltre quale sarebbe la differenza? Cambia realmente qualcosa se dichiaro inline il metodo? E se si in quali condizioni?

Grazie.