c++ - 更改 std::unique_ptr 的删除器

标签 c++ c++11

我要改default_deleter对于 std::unique_ptr .这很容易实现,但有一点不方便——我必须使用 2 个模板参数而不是一个模板参数来声明变量,如下所示:

std::unique_ptr<MyType, MyDeleter<MyType>> myVar;

您可能会看到声明很长,我觉得我可以使用较短的版本,但我不知道如何:)

是否可以声明某种类型的 MyUniquePtr<T>这将与 std::unique_ptr<T, MyDeleter<T>> 相同?

编辑:Matthieu M. 已经回答,但遗憾的是我无法在 Visual Studio 中使用此功能,因为它尚未实现。还有其他方法可以实现这种行为吗?

最佳答案

实际上是,使用模板别名:

template <typename T>
using MyUniquePtr = std::unique_ptr<T, MyDeleter<T>>;

关于c++ - 更改 std::unique_ptr 的删除器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090001/

相关文章:

c++ - 你在 C++ 的析构函数中调用 delete 吗?

c++ - 为什么不能将函数中变量的最后一次赋值视为移动?

c++ - 给定复制构造的要求,如何在 C++11 中编写有状态分配器?

c++ - 有 unique_ptr 问题的类

c++ - 如何从从节点向主节点发送动态数组

c++ - 在 C++ 中将值复制到结构成员和从成员复制值

c++ - 在 C++ 中使用 preceding::in 的对象声明

c++ - 按通用引用返回

C++/Qt : passing variables to be changed in the class

C++调用错误签名的函数