- 主题:今天被C++的stl vector 自动扩大空间坑了
话说cpp11之前不提供emplace,你用pushback很多时候大概就崩了
你的这个类本身也特别容易误用,你是怎么小心翼翼地让它崩在vector里面的…
或者你不小心里面加了个move only的member都能阻止vector使用copy扩容吧
等一下,话说这个vector居然没有自动选择用move ctor扩容?
【 在 thinkgrass 的大作中提到: 】
: class Item
: {
: public:
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
自己回复: 如果move ctor是noexcept的,vector grow的时候也会用move ctor而不会触发crash
【 在 lambdai 的大作中提到: 】
: 话说cpp11之前不提供emplace,你用pushback很多时候大概就崩了
:
: 你的这个类本身也特别容易误用,你是怎么小心翼翼地让它崩在vector里面的…
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 172.58.38.*
有道理!还是得自己显示定义noexcept move ctor
【 在 ilovecpp 的大作中提到: 】
: 有dtor就没有implicit move ctor了。
:
: 【 在 lambdai 的大作中提到: 】
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
嗯,我欠考虑。默认的move ctor确实还是会跪。
不过我说着默认move其实想的是里面的rawptr是unique ptr
【 在 here080 的大作中提到: 】
: 你理解有偏差。
: 他写这个类按默认move和copy结果一样
: 【 在 lambdai (lambdai) 的大作中提到: 】
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*