Dlaczego zarówno macierze wielkości runtime, jak i std :: dynarray w C ++ 14?

Draft C ++ 14 zawiera zarówno tablice runtime, jak istd::dynarray pojemnik. Z tego co mogę powiedzieć, jedyną prawdziwą różnicą między nimi jest tostd::dynarray ma interfejs STL (np.begin, end, sizeitp.), podczas gdy tablice wielkości runtime nie. Dlaczego więc C ++ 14 ich potrzebuje?

Rozumiem, że tablice wielkości runtime są częścią podstawowego językastd::dynarray jest częścią standardowej biblioteki, alepropozycja dlastd::dynarray wyjaśnia, że ​​autorzy oczekują, że kompilatory w wielu przypadkach oferują specjalne wsparciestd::dynarray aby mógł być tak wydajny, jak to tylko możliwe, tj. tak wydajny jak tablica wielkości runtime. W związku z tym rozróżnienie język / biblioteka wydaje się nieco sztuczne.

Więc ponownie, dlaczego C ++ 14 potrzebuje zarówno macierzy wielkości runtime, jak istd::dynarray? I biorąc pod uwagę tostd::dynarray ma bogatszy (STLified) interfejs, dlaczego nie po prostu upuścić tablice wielkości runtime, zakładając, żestd::dynarray można zaimplementować z równą wydajnością czasu wykonywania?

Wyjaśnienie

Kiedy mówię o „tablicach wielkości runtime”, mówię o nowej funkcji języka podstawowego C ++ 14 opisanej wN3639, nie do tradycyjnych tablic C lub VLA lub czegokolwiek w C ++ 11.

questionAnswers(3)

yourAnswerToTheQuestion