底辺大学の院生がプログラミングや機械学習を勉強するブログ

勉強していることを雑にまとめるブログ。当然、正しさの保証は一切しない。

C++/CLIでarrayが使えねーと思ったらstd::arrayはダメだったという話

タイトルで内容完結してるけどつまりそういうこと。(手抜き)




久しぶりにC++/CLIをさわる機会があったときに、Point型の配列を作りたかったから

array<Point>^ points = gcnew array<Point>(N);

みたいなコードを書いたんだけどどうもコンパイルが通らない。

で、調べてみても全く同じコードしかヒットしなくて頭抱えてたんだけど、どうやらこのarrayコンテナはstd::arrayで、cliは他にcli::arrayがあるらしく、Pointみたいな.NETの構造体やクラスを格納する場合はこっちを使わないとダメらしい。

というわけで

cli::array<Point>^ points = gcnew cli::array<Point>(N);

でめでたく動いた。


C++/CLIはstd::vectorとかも使えないから大変不便だし、何が使えて何が使えないのかの基準もよくわからんから慣れるまでまだまだ掛かりそうだ。あんまりコイツに慣れたいとも思わないが。


そのうちそこらをまとめたいけど、最近どうにも時間がなく寝不足なのでこの辺で。