make_unique用法
时间: 2023-07-29 07:12:22 浏览: 125
Make经典用法
`std::make_unique` 是 C++11 标准引入的一个函数模板,用于在堆上创建一个动态分配的对象,并返回指向该对象的唯一指针。`std::make_unique` 的语法如下:
```c++
template <typename T, typename... Args>
std::unique_ptr<T> make_unique(Args&&... args);
```
其中,`T` 表示要创建的对象类型,`Args` 表示要传递给对象构造函数的参数类型。`std::make_unique` 的第一个参数是要创建的对象类型,后面的参数是传递给对象构造函数的参数。
使用 `std::make_unique` 创建对象的好处是,它可以避免手动管理内存,同时可以保证在出现异常时自动释放已分配的内存。例如:
```c++
#include <memory>
int main() {
auto p = std::make_unique<int>(42);
return 0;
}
```
这里我们使用 `std::make_unique` 创建了一个 `int` 类型的对象并初始化为 `42`,并将其赋值给 `p`,`p` 是一个 `std::unique_ptr<int>` 类型的智能指针,它会在作用域结束时自动释放内存,无需手动 `delete`。
阅读全文