- C++で書いていても、OpenGLなどのC用のAPIを使っていると、生の配列を受け渡す必要が出てくる。
- sizeof( Cの配列 )は便利。
- std::vectorを使って、受け渡しが必要なときは.data()メンバ関数を呼べば良いかと思ったが、std::vectorはsizeof()が使えない。vec.size() * sizeof(typename)すれば良いが、多次元配列の場合は?
そこでstd::arrayはどうなんだろうと思ってsizeof() してみたら上手くいくようだ。
コード:
おお! C配列の完全上位互換として使って良さそう。
しかし多次元配列ならやはり、C配列そのまま使うのが一番楽かもしれない。
- std::arrayを入れ子にして多次元配列を実現しても.size()やsizeofで全体の大きさは取得できない。
- boost/multi_arrayなら.size(), sizeofが有効で、複雑な走査もできるが、初期化がC配列のように簡単にはできないので、わざわざ使うのが億劫に感じてしまう。