我在整个网络上进行了大量搜索,发现了很多现代 C++ 中 unique_ptr
实现的不同示例。我已经开始将所有以 ::iterators
开头的代码更新为 auto
等。但是,使用智能指针我不认为我完全理解我的意思我应该在做。
我有一个标准指针:
object *temp = new object();
然后我有了新的智能指针:
unquie_ptr<object> temp(new object());
这不是正确的实现方式吗?如果是这样,当我在程序末尾构建一个简单的清理函数时,创建智能指针似乎需要更多的打字/工作?
最佳答案
您可以使用性能更高的 std::make_unique
和 std::make_shared
。
然而,make_unique
在C++11中不可用,但在C++14及以上版本中可用
所以
std::unique_ptr<object> = std::make_unique<object>();
或
auto p = std::make_unique<object>();
shared_ptr
也有类似的事情。
在 C++11 中,您可以将表达式用于 unique_ptr
。
unquie_ptr<object> temp(new object());
关于c++ - 现代 C++ 中的唯一指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208935/