Visual Studio 2008で、STL/CLRが使えるようになったとのことで、使ってみました。
コードはこんな感じ。
#include <cliext/vector>
using namespace System;
int main(array<String ^> ^args)
{
cliext::vector<String^>^ stlArgs;
stlArgs = gcnew cliext::vector<String^>(args);
// おぉ。イテレータだ。
for (cliext::vector<String^>::iterator it = stlArgs->begin(); it != stlArgs->end(); ++it)
{
Console::WriteLine(*it);
}
Console::WriteLine();
// for eachもつかえる。
for each (String^ arg in stlArgs)
{
Console::WriteLine(arg);
}
Console::WriteLine();
return 0;
}
参照設定に「Microsoft.VisualC.STLCLR.dll」を入れて、プロジェクトの設定で「C/C++」→「全般」の「#using参照の解決」に「C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5」を追加してビルド。
おぉ・・。