クラステンプレートの中にメンバテンプレートを持たせたとき、
メンバの宣言と定義をわけて書く場合は、下のような感じでいいんでしょうか。
(これが一般的でしょうか、という意味です。試行錯誤でコンパイルが通るようになった結果がこれです)

template <class T> class A{
public:
A(T t){ }
template <class S> void f(S s);
};

template <class T> template <class S> void A<T>::f(S s)
{
}

「template <class T>」「template <class S>」の位置はこれでいいのかな、と。
たとえば「const C&」と「C const&」が同じ意味を持つように、上の例でも
他の書き方があったりしますか?