我在看一些arduino代码,其中说:

std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);


通常,使用make_unique创建唯一的指针。

所以我想知道要处理该指针需要做什么?

最佳答案

您什么都不需要做。此代码几乎与make_unique相同。我建议您不要自己编写这样的代码(make_unique更好),但是如果您不能更改此行,则您不太可能会注意到其中的区别。

用原始指针初始化unique_ptr时,如果表达式比这种情况复杂一些,则可能发生内存泄漏。 make_unique防止了这种可能性。

使用shared_pointer时,使用原始指针进行初始化的效率也比使用make_shared的效率稍低。

09-07 03:10