提问人:Lorah Attkins 提问时间:3/4/2021 最后编辑:eripLorah Attkins 更新时间:3/4/2021 访问量:156
新emplace_back签名
New emplace_back signature
问:
方法的签名已更新为返回引用:emplace_back
std::vector
template< class... Args >
constexpr reference emplace_back( Args&&... args );
虽然我可以找到许多关于为什么不需要这样做甚至糟糕的设计的(旧)帖子,但我找不到有关更改理由的来源。
- 为什么会发生此更新?如果明显的“提供更易于使用的干扰”成立,为什么没有得到更新呢?
push_back
- 它不会通过使接口复杂化而使异常安全要求复杂化吗?
我也在寻找介绍这一变化的论文,如果你能指出我,将不胜感激。
答: 暂无答案
评论
push_back
推回一个已经存在的对象,其中 as 创建一个新对象,你可能想看看它。如果您可以在推送对象之前观察/修改对象,则无法使用emplace_back
push_back
emplace_back