すいません、教えてください。

--- ヘッダ ----
typedef struct _STRUCT1{
long code;
CArray<long, long> data;
}STRUCT1;


CArray<STRUCT1, STRUCT1&> code_data;

--- ソース ----
STRUCT1 st;
st.code = 1;
st.data.Add(100);
code_data.Add(st);


みたいな感じでやると、最後の行でコンパイルエラーになるんですが
CArrayの中にCArrayを含む構造ってダメなんでしょうか?

途中までいい気でコーディングして、最後にエラー出てしまって
途方にくれています。
今更ほかの方法で似たような事やるのは大変で・・・。
よい方法ないでしょうか。