Orcas-Mar2007CTPがおっこってるってんで早速拾って遊んでるわけですが。
# つっても僕の興味はSTL/CLRだけなんだども ^^;
えと、残念ながらこの版からVC++8上ではまともに動かなくなったみたい。
コンパイラの差異によるものか.NET Framework 2.0ではダメなのか。
アナウンスによればSTL/CLRは.NET Framework 3.xの仲間入りらしいから後者かな。
# なのでVirtualPC上でASCIIキー配列表見ながらいぢってます(とほほーい)
まだ触り始めたばっかなので詳しくはわからんけども、おもろいもんが入ってます。
cliext::collection_adapter ってやつで、System::Collections::Genericのコンテナをこいつ
に食わすと size(), begin(), end() が使えるようになり、.NET コンテナに<algorithm>を
適用できますねぇ。
.NET Framework と STL との垣根がまたちょっと低くなって喜ばしい限りす。
#include <cliext/adapter> // 新規参入
#include <cliext/list>
#include <cliext/algorithm>
using namespace System;
using namespace System::Collections::Generic;
void print(String^ str) {
Console::WriteLine(str);
}
int main(array<System::String ^> ^args) {
Console::WriteLine(L"Hello World");
List<String^> sl;
sl.Add(L"Hello");
sl.Add(L"world");
cliext::collection_adapter<IList<String^>> sla(%sl);
Console::WriteLine(sla.size());
cliext::for_each(sla.begin(), sla.end(), &print); // ぶらぼー
for ( cliext::collection_adapter<IList<String^>>::iterator iter = sla.begin();
iter != sla.end(); ++iter ) {
Console::WriteLine(iter.get_ref()); // *iterは無理ポ
}
return 0;
}