桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

続・MFCのコレクションクラス

20年前のソースコードなのでSTLが全く使われていなくて、MFCのコレクションクラスをメインで使っているんですが、

CList< int > a;
for ( int i = 1; i <= 30; ++i )
{
	a.AddTail( i );
}

CList< int > b;
POSITION posB = a.GetHeadPosition();   // お寝ぼけ
for ( POSITION posA = a.GetHeadPosition(); NULL != posA; a.GetNext( posA ) )
{
	b.AddTail( a.GetAt( posA ) );
}

for ( ; NULL != posB; b.GetNext( posB ) )
{
	TRACE( _T("%d "), b.GetAt( posB ) );
}

こんな感じで変数bの先頭データを間違って変数aの先頭データで設定してしまっていたんですが、これちゃんと動作してしまうんですよね。

//CList< int > b;
CList< double > b;

のように変更すると動かなくなった。