質問です。
以下のようなコードを書いたところ、
"構造体または共用体中にサイズが 0 の配列があります。"
とエラーが出ました。
原因はfunc()で宣言された"A<N-1> a;"で、
順次N-1のクラスを展開(?)していくことになり
最終的にN=0のものを展開してint array[0];としてしまうことにあるようです。

template <int N>
class A{
private:
int array[N];
/* 中略 */
public:
/* 中略 */
int func(){
A<N-1> a;

if(N==1)
return0;

/* a使ったなんらかの処理。途中a.func()等の値を使う*/

return hoge;
}
}

テンプレートを使った再帰的な処理をしたかったのですが
なにかよい書き方は無いのでしょうか。
ご教授お願いします。
環境はVC++5.0とg++です。