【发布时间】:2020-08-06 17:56:13
【问题描述】:
容器要求已从 C++03 更改为 C++11。虽然 C++03 有全面的要求(例如,向量的复制可构造性和可分配性),但 C++11 对每个容器操作定义了细粒度的要求(第 23.2 节)。
因此,您可以例如只要您只执行某些不需要赋值的操作(构造和push_back 就是这样的操作;insert不是)。
我想知道的是:这是否意味着标准现在允许vector<const T>?我看不出有任何不应该的理由 - const T,就像具有 const 成员的结构一样,是一种可复制构造但不可分配的类型 - 但我可能错过了一些东西。
(让我觉得我可能遗漏了什么的部分原因是,如果您尝试实例化 vector<const T>,gcc 主干会崩溃并烧毁,但 vector<T> 可以在其中 T 有一个 const 成员)。
【问题讨论】:
标签: c++ vector c++11 constants