gpt4 book ai didi

c++ - boost::make_shared 现在过时了吗?

转载 作者:IT老高 更新时间:2023-10-28 21:35:54 26 4
gpt4 key购买 nike

boost::make_shared 现在过时了吗?在 1.35 中没有找到它的定义。

最佳答案

std::make_shared 在 C++11 中也可用。请注意,make_shared 不仅仅是一个便利功能。看看下面的代码片段:

make_shared<foobar>(1, 2);
shared_ptr<foobar>(new foobar(1, 2));

两个语句都创建一个 foobar 对象并构造一个 shared_ptr。但是,前者避免了为共享计数器分配内存,因为单个内存块将用于计数器和 foobar 对象。这对于第二个语句是不可能的,因为 foobar 的内存是在构造 shared_ptr 之前分配的。

我想说的是:不,make_shared 并没有过时,因为它提供了非常有用的优化。

关于c++ - boost::make_shared 现在过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com