Draft C ++ 14包含运行时大小的数组和std::dynarray容器。 从我可以告诉,两者之间唯一真正的区别是std::dynarray有一个STL接口(例如, begin , end , size等),而运行时大小的数组不。 那么为什么C ++ 14需要它们呢? 我知道运行时大小的数组是核心语言的一部分,而std::dynarray是标准库的一部分,但std::dynarray的提议表明,作者希望编译器在许多情况下提供特殊的支持对于std::dynarray这样它可以尽可能高效,即像运行时大小的数组一样高效。 因此,语言/图书馆的区别似乎有些人为的。 那么,为什么C ++ 14需要运行时大小的数组和std::dynarray呢? 考虑到std::dynarray有一个更丰富的(STLified)接口,为什么不删除运行时大小的数组,假设std::dynarray可以实现相同的运行效率? 澄清 当我谈论“运行时大小的数组”时,我指的是N3639中描述的新的C ++ 14核心语言特性,而不是传统的C数组或VLA或C ++ 11中的任何东西。