Por que tanto arrays em tempo de execução quanto std :: dynarray em C ++ 14?

Rascunho C ++ 14 inclui arrays de tamanho de runtime estd::dynarray recipiente. Pelo que posso dizer, a única diferença real entre os dois é questd::dynarray tem uma interface STL (por exemplo,begin, end, size, etc.), enquanto matrizes dimensionadas em tempo de execução não. Então, por que o C ++ 14 precisa dos dois?

Eu entendo que os arrays de tamanho de runtime são parte da linguagem principal, enquantostd::dynarray faz parte da biblioteca padrão, masa proposta destd::dynarray deixa claro que os autores esperam que os compiladores, em muitos casos, ofereçamstd::dynarray para que possa ser o mais eficiente possível, ou seja, tão eficiente quanto um array de tamanho de tempo de execução. Como tal, a distinção linguagem / biblioteca parece um pouco artificial.

Então, novamente, por que o C ++ 14 precisa de arrays de tamanho de runtime estd::dynarray? E dado questd::dynarray tem uma interface mais rica (STLified), por que não apenas descartar matrizes em tempo de execução, supondo questd::dynarray pode ser implementado com eficiência de tempo de execução igual?

Esclarecimento

Quando falo em "matrizes dimensionadas em tempo de execução", estou me referindo a um novo recurso de linguagem principal C ++ 14 descrito emN3639, não para matrizes C tradicionais ou VLAs ou qualquer coisa em C ++ 11.

questionAnswers(3)

yourAnswerToTheQuestion