unique-ptr 相关问题

std :: unique_ptr是一个智能指针,通过指针保留对象的唯一所有权。 unique_ptr不可复制或可复制,unique_ptr的两个实例无法管理同一对象。

unique_ptr声明后如何赋值?

#包括 #include // unique_ptr 使用命名空间 std; int main() { std::unique_ptr char_ptr; char_ptr = (char*)"anisha"; 返回0; } 我是...

回答 3 投票 0

是否可以初始化 unique_ptr 数组的元素? [重复]

我使用堆内存作为一个小示例的一部分,最后我写了这个: 双* p = 新双[4] { 0.0, 1.0, 2.0, 3.0 }; ... 删除[] p; 后来,我想将其升级为 std::

回答 1 投票 0

shared_ptr 和 unique_ptr:关于具体案例的问题

我想定义两个类 A 和 I,使其对象尊重这种关系: i1 ------------a1 |------a2 |----a3 I 类的一个实例指向 0、1、...

回答 2 投票 0

具有预定义最大使用次数的共享指针

有没有一种方法可以实现具有编译时已知的最大引用计数的共享指针(可能使用 unique_pointer)?我的情况是 max_ref_count = 2。 const auto p = std::make_shared&...

回答 1 投票 0

C++:unique_ptr 与 auto_ptr,以及 unique_ptr 相对于 auto_ptr 的优点?

我不完全理解 unique_ptr 相对于 auto_ptr 的好处,或者我还没有完全相信为什么我们需要使用 unique_ptr。 我看到以下差异。 1) unique_ptr 支持数组和

回答 1 投票 0

unique_ptr 相对于 auto_ptr 的优点?

我不完全理解 unique_ptr 相对于 auto_ptr 的好处,或者我还没有完全相信为什么我们需要使用 unique_ptr。 我看到以下差异。 1) unique_ptr 支持数组和

回答 1 投票 0

类成员中unique_ptr的正确用法

我正在尝试真正从 c++98 迁移到 c++11 及更高版本。我已经了解了大部分新内容,但我仍然不确定 unique_ptr 的正确用法。 考虑下面的例子,

回答 4 投票 0

将 unique_ptr 放入列表中

我试图将 std::unique_ptr 放入 std::list 中,但失败并出现以下错误: :29:23:错误:没有匹配的函数可用于调用 'std::__cxx11::list 我正在尝试将 std::unique_ptr 放入 std::list 中,但失败并出现以下错误: <source>:29:23: error: no matching function for call to 'std::__cxx11::list<std::unique_ptr<test> >::emplace(std::remove_reference<std::unique_ptr<test>&>::type)' 29 | mapList[1].emplace(std::move(t)); 以下是代码: using namespace std; class test { public: int i; }; typedef std::list<std::unique_ptr<test>> testList; int main() { unordered_map<int, testList> mapList; mapList.try_emplace(1, testList()); std::unique_ptr<test> t = make_unique<test>(); mapList[1].emplace(std::move(t)); return 0; } 在这里尝试一下:https://godbolt.org/z/Wq4hPrzPj 错误非常明确:没有对 std::list<>::emplace() 的调用与您提供的参数相匹配。 事实上,如果我们仔细查看文档,我们会注意到std::list<>::emplace()将位置作为第一个参数(通过std::list<>::const_iterator给出)。 就您而言,由于列表为空,您可能想要的是 std::emplace_back() 或 std::emplace_front()。 如有疑问,请务必参考良好的文档。 旁注:你真的应该改掉那个坏的using namespace std;习惯。 您可以在此处查看有关该主题的更多信息:为什么是“using namespace std;”被认为是不好的做法吗?.

回答 1 投票 0

节点句柄 vs std::unique_ptr

阅读节点句柄的文档,我注意到节点句柄类型的许多功能可以简单地通过 std::unique_ptr 的专门化来模拟。事实上,...

回答 1 投票 0

析构函数意外调用

为什么这段简单代码中的析构函数 ~TestClass() 被调用了两次? #包括 #包括 #包括 测试类 { int m_val; 民众: 测试类(我...

回答 2 投票 0

使用 unique_ptr 调用 ::GetModuleHandleEx,具有自定义删除器来自动处理释放资源

我需要释放下面代码中的HMODULE吗? 双字标志 = GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS; H 模块 hm = 0; ::GetModuleHandleExW(flags, L"Test.dll", &hm); HRSRC hResour...

回答 1 投票 0

将 std::unique_ptr<uint8_t[]> 转换为 struct unique_ptr 而不丢失 uint8_t[] 缓冲区

有没有办法将 std::unique_ptr(n) 转换为 std::unique_ptr 以便 struct 指向与 uint8_t ptr 相同的地址并保存该缓冲区? 自动

回答 1 投票 0

将 std::unique_ptr<uint8_t[]> 转换为 struct unique_ptr 而不丢失 uint8_t[] 缓冲区

有没有办法将 std::unique_ptr(n) 转换为 std::unique_ptr 以便 struct 指向与 uint8_t ptr 相同的地址并保存该缓冲区? 自动

回答 1 投票 0

创建shared_ptr时不需要的复制构造函数调用

在进行一些编码练习时,我在尝试将可选 std::unique_ptr 的所有权传递给 std::shared_ptr 时遇到以下错误: /usr/include/c++/11/ext/new_allocator.h:16...

回答 1 投票 0

我应该分配或重置unique_ptr吗?

考虑到所拥有对象的生命周期与其所有者相关联的常见情况,我可以通过两种方式之一使用唯一指针。 。 它可以被赋值: 班级所有者 { std::unique_ptr<

回答 3 投票 0

dynamic_pointer_cast 意外行为

我正在构建一个工厂类,我需要将 unique_ptr 返回到 BaseClass。返回的指针由 DerivedClass 对象组成,该对象使用 make_shared 转换为共享指针,然后

回答 1 投票 0

智能指针可以与使用 new T[] 分配的数组一起使用吗?

智能指针如何处理数组?例如, 无效函数() { std::unique_ptr my_array(new int[5]); } 当 my_array 超出范围并被破坏时,整个数组是否...

回答 2 投票 0

关于类唯一指针的问题(.h中变量初始化VS构造函数中)

我是一个从唯一指针 unique_ptr 开始的初学者,我有一个关于它们的问题: 如果我有一个 A 类,里面是 .h,我还有一个像这样的 B 类: A类{ 乙b; 民众: ...

回答 1 投票 0

将 unique_ptr 的向量数据转换为指向 const 指针的指针

我有一个std::unique_ptr 的std::vector,我想从一个API 调用一个函数,该函数接受一个指向const 指针的指针。将其 data() 转换为该类型是否正确? 这个示例程序...

回答 1 投票 0

为什么shared_ptr<void>是合法的,而unique_ptr<void>是格式错误的?

这个问题确实符合标题:我很想知道造成这种差异的技术原因是什么,以及原理是什么? std::shared_ptrsharedToVoid; // 合法的; std::uniq...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.