>例えば inner class がどうあがいても前方参照できない

struct outer
{
  struct inner_a
  {
    void method(){ inner_b::method(); }
  };

  struct inner_b
  {
    static void method(){};
  };
};

普通にinner_a内からinner_bを使えますが、いったい何のことを言っているんですか?
コンパイルもちゃんと通りますよ