10

gcc 4.9现在支持n3696(具有自动存储持续时间的运行时大小的数组)n3662说:

在具有自动存储持续时间的N3497运行时大小的阵列中,Jens Maurer 提出了具有运行时限制的阵列。这些数组对于 std::dynarray 就像普通的固定大小数组对于 std::array 一样。

在这个邮件列表中,Jonathan Wakely 说:

我们应该在手册中添加一个 C++14 状态表,但同时这里是库状态的快速摘要。

...

这些是缺失的:

  • N3672 建议添加一个实用程序类来表示可选对象
  • N3655 TransformationTraits Redux
  • N3662 C++ 动态数组
  • N3644 空前向迭代器

特征一个很简单但有点乏味,迭代器一个可能只影响调试模式,但其他两个是大量的工作。有人打算工作吗?

然而,n3662 也说:

我们建议不采用 C 可变长度数组,而是为数组定义一种新工具,其中元素的数量在构造时受到限制。我们称这些动态数组为 dynarray。

我似乎无法在页面dynarray上使用快速 CTRL+F 。gcc那么dynarray很快就会实施,会variable length arrays继续存在还是会消失?

4

1 回答 1

15

std::dynarray最初打算与 c++14 一起使用。但是,后来决定std::dynarray将其移至可能还包含某些std::array_view类的“Array TS”。主要原因是委员会在某些情况下没有就堆分配与堆栈分配的某些观点达成一致(如果您尝试分配std::dynarraywith会怎样new)。因此,决定推迟。关于应该做什么,仍有一些正在进行的讨论。

该课程还没有为 C++14 做好准备。它可能会随 Arrays TS 或 C++17 一起提供。

更新: std::dynarray不在 C++14 中,不会在 C++17 中,Arrays TS 已经停产,所以不久之后可能不会有任何接近std::dynarray标准的东西。如果我正确理解标准的当前位置,而不是神奇的运行时大小的数组,委员会宁愿为运行时大小的类提出一个通用解决方案,但迄今为止的每一个 建议都被拒绝了。

于 2013-12-26T00:05:00.507 回答