相关疑难解决方法(0)

C++中make_shared和普通shared_ptr的区别

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
std::shared_ptr<Object> p2(new Object("foo"));
Run Code Online (Sandbox Code Playgroud)

许多google和stackoverflow帖子就在这里,但我无法理解为什么make_shared比直接使用更有效shared_ptr.

有人可以一步一步解释我创建的对象序列和两者所做的操作,这样我就能理解make_shared效率如何.我在上面给出了一个例子供参考.

c++ shared-ptr c++11

252
推荐指数
5
解决办法
9万
查看次数

shared_ptr到一个数组:它应该被使用?

只是一个小问题shared_ptr.

使用shared_ptr指向数组是一个好习惯吗?例如,

shared_ptr<int> sp(new int[10]);
Run Code Online (Sandbox Code Playgroud)

如果没有,那么为什么不呢?我已经意识到的一个原因是不能增加/减少shared_ptr.因此,它不能像正常指向数组的指针一样使用.

c++ shared-ptr c++11

157
推荐指数
2
解决办法
8万
查看次数

例外安全和make_unique

只是为了澄清一下,make_unique当你在表达式中有多个分配而不只是一个时,使用只会增加异常安全性,对吗?例如

void f(T*);

f(new T);
Run Code Online (Sandbox Code Playgroud)

是完全异常安全(就分配和东西而言),而

void f(T*, T*);

f(new T, new T);
Run Code Online (Sandbox Code Playgroud)

是不正确的?

c++ unique-ptr exception-safety c++11

13
推荐指数
3
解决办法
4464
查看次数

标签 统计

c++ ×3

c++11 ×3

shared-ptr ×2

exception-safety ×1

unique-ptr ×1