首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候使用std::make_shared_for_overwrite?

什么时候使用std::make_shared_for_overwrite?
EN

Stack Overflow用户
提问于 2021-06-14 17:45:34
回答 1查看 268关注 0票数 3

除了std::make_shared()之外,C++20还引入了新的函数std::make_shared_for_overwrite()https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared

为什么旧的make_shared是不够的,在什么情况下需要使用新的功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-14 18:05:34

std::make_shared()值初始化它创建的对象,这可能是一个不必要的步骤,如果您打算稍后在这些对象上赋值。

std::make_shared_for_overwrite()默认初始化它创建的对象。

区别只对基本类型的(子)对象有影响,其中没有初始化器。

std::make_shared<int[1000][1000]>()将分配一百万个int,而std::make_shared_for_overwrite<int[1000][1000]>()将分配一百万个int

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

https://stackoverflow.com/questions/67968070

复制
相关文章

相似问题

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