Training for D-Day

ブログの内容は個人の見解であり、所属する企業を代表するものではありません。

MFCのSerialize,Desirialize part.3 CMap<int,CStringArray*>にて

結論から言うと、出来なそう。
トータルで2時間ほど粘ったが、断念しました。

まず

CMap<int, int, CStringArray, CStringArray&>

で宣言すると怒られます。

=オペレータがない。

で、

CMap<int, int, CStringArray*, CStringArray* &>

でやると一見大丈夫そうですが、Desirialize がうまくいかないです。
でもたしかにCStringArrayの要素数がいくつかわからないのにMFCが勝手に判断してnewしてくれるとも思えないので、これは出来ないと結論づけました。

もし上記のことをやりたいなら、

CMap<int,int,CString,CString>

で、Serialize,Desirializeは行って、
CString <--> CStringArrayを内部で行ってやる必要がありそうです。