C++1y 動的配列クラスの提案

N3522 C++ Dynamic Arrays


C99にある可変長配列がC++でもほしい、という動機から、std::vectorとは少し違う動的配列クラスが提案されています。

int n = 3;
dynarray<int> ar(n); // 動的に要素数を決定する(その後追加、削除はできない)

size_t size = ar.size(); // コンストラクタで設定した要素数を取得(3が返る)

// イテレータによる操作
for_each(ar.begin(), ar.end(), [](int&) {});

コンストラクタで動的な要素数を決定し、その後、要素の追加・削除を行わないのが特徴です。
アロケータを設定できないインタフェースになっていますが、これは領域をヒープにとるかスタックとるかを、ユーザーに決定させない(隠蔽する)という目的があるようです。


現状、ムーブできない等、機能が不足しているので、まだ検討の余地がありそうです。