- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这个问题是在我回答this another question的时候提出的.
N3337 23.3.6.3“vector 容量”说(在 770 页):
void resize(size_type sz);
Effects: If
sz <= size()
, equivalent toerase(begin() + sz, end());
. Ifsize() < sz
, appendssz - size()
value-initialized elements to the sequence.Requires: T shall be CopyInsertable into *this.
然而,clang++ says it's okay though T is not copyable.我认为 resize(size_type)
是有道理的只需要可破坏/可移动/默认可构造。如果 sz <= size
它会破坏, 追加(默认构造,容量不够则销毁移动)if size() < sz
.
什么是真理?是标准缺陷吗?还是clang++和我都错了?
最佳答案
你是对的。 http://cplusplus.github.io/LWG/lwg-defects.html#2033 为 C++14 修复了 C++11 中的一个缺陷
当前的措辞是:
Effects: If
sz < size()
, erases the lastsize() - sz
elements from the sequence. Otherwise, appendssz - size()
default-inserted elements to the sequence.Requires:
T
shall beMoveInsertable
andDefaultInsertable
into*this
.
关于Destructible
的要求在表 95 中,适用于所有容器的所有操作,而不仅仅是 resize()
.
关于c++ - std::vector::resize(size_type) 需要 CopyInsertable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937208/
有人可以对这两个术语进行更清晰的解释吗? 换句话说,请通过示例进行一些简单的解释。 (from : cppreference.com) MoveInsertable : Specifies that
这个问题是在我回答this another question的时候提出的. N3337 23.3.6.3“vector 容量”说(在 770 页): void resize(size_type sz)
我是一名优秀的程序员,十分优秀!