【初心者歓迎】C/C++室 Ver.13【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0506デフォルトの名無しさん
05/01/30 23:47:07以下のようなコードを書いたところ、
"構造体または共用体中にサイズが 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++です。
■ このスレッドは過去ログ倉庫に格納されています