首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向量::调整大小(Size_type)需要CopyInsertable吗?

向量::调整大小(Size_type)需要CopyInsertable吗?
EN

Stack Overflow用户
提问于 2015-06-19 11:37:59
回答 1查看 163关注 0票数 7

这个问题是在我回答这是另一个问题时提出的。

N3337 23.3.6.3“矢量容量”(载于770页):

空洞尺寸调整(Size_type sz); E sz <= size():Ifff,等效于erase(begin() + sz, end());。如果为size() < sz,则将sz - size()值初始化元素追加到序列中。 要求:t将被CopyInsertable转换为*this。

但是,clang++说,虽然T是不可复制的,但没关系。和我认为,resize(size_type)只需要可销毁/可移动/默认的可构造性,这是有意义的。如果sz <= size破坏,则追加(使用默认构造,如果容量不够则销毁和移动),如果size() < sz

什么是真理?这是标准缺陷吗?还是clang++和我都错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 11:42:42

你是对的。这是C++11中的一个缺陷,由http://cplusplus.github.io/LWG/lwg-defects.html#2033为C++14修复。

目前的措辞是:

效果:如果是sz < size(),则从序列中删除最后一个size() - sz元素。否则,将sz - size()默认插入的元素追加到序列中。 要求:T应为MoveInsertableDefaultInsertable*this

Destructible的需求在表95中,适用于所有容器上的所有操作,而不仅仅是resize()

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30937208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档