入れ子になったクラステンプレートのスコープ外定義

クラステンプレートの中に入れ子でクラステンプレートを宣言して,クラススコープの外から中のクラステンプレートの定義を書く書き方.

template
class C1
{
  template
  class C2;
};

template
template
class C1::C2
{
//definitions of C2
};

なんていうか,「こんな書き方あったのね」って感じ.
若干templateの順番が気持ち悪い・・・
こういう噛めば噛むほど味が出てくるというか,やたらに広大な言語仕様を抱えているところがC++の魅力というか・・・
結論としては,やはりC++は最高である,とw