>12
用語の問題だが local class といったら関数内で定義したクラスのこと。

int main() {
  struct S {...}; // これ
}

クラス内で定義したクラスは nested class な。このあたりは規格書で用語
が決まってるから、誤解を招かぬよう統一して下さいな。

ANSI C++ の規格では local class はテンプレートパラメタとして使えない、
nested class は OK のはず。class SomeObject の定義を public に移して
みたら?