unique-ptr 相关问题

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

为什么按值获取 std::unique_ptr 的函数不调用 gcc/clang 中的析构函数?

查看以下简单 C++ 函数的汇编输出: #包括 int square(std::unique_ptr num) { 返回 *num * *num; } Gcc 和 clang 发出以下内容

回答 1 投票 0

从唯一指针列表中返回原始指针

我有一个类 (A),它将拥有另一个类 (B) 的一组实例的内存。 A 将其 B 的实例存储为一组 std::unique_ptr。 我希望A能够返回推荐人...

回答 2 投票 0

将 unique_ptr 传递给完成处理程序时,Boost ASIO“错误地址”错误

我正在尝试使用 ASIO 实现一个简单的 TCP 服务器。这里的主要区别是我使用 std::unique_ptr 来保存缓冲区而不是原始指针,并且我将它们移动到完整的内部...

回答 1 投票 0

我什么时候应该按值返回,而不是返回唯一的指针

我想知道的是,在传递它们、内存管理和在实践中使用它们方面,按值返回 Cat 实际上与返回 std::unique_ptr 有什么不同。

回答 3 投票 0

unique_ptr::release() 是否调用析构函数?

这段代码正确吗? 自动 v = make_unique(12); v.release(); // 这可能吗? 相当于删除原始指针吗?

回答 6 投票 0

C++ - unique_ptr 的转换/更改类型

编辑:谢谢,一如既往的出色帮助:) 我找不到解决方案,我有一个基类的 unique_ptr,它具有派生类的数据,我想将其类型设置为派生类...

回答 5 投票 0

std::unique_ptr 如何在闭包上应用 EBO?

#包括 #包括 int main(){ 自动x1 = [](int *p){ 删除(p); }; 自动 ptr = std::unique_ptr(new int{1},x1); printf("%zu\...

回答 1 投票 0

使用unique_ptr来控制文件描述符

理论上,我应该能够使用自定义指针类型和删除器,以便 unique_ptr 管理不是指针的对象。我尝试了以下代码: #ifndef UNIQUE_FD_H #定义

回答 9 投票 0

如何解释“const unique_ptr”

const unique_ptr upi{new int{4}}; 计算<< ++*upi << '\n'; Seems upi is a const smart pointer. The int it points to can still be modified. What if I want to declare the int as

回答 2 投票 0

带有 make_unique 和 emplace_back 的简单结构

给定一个结构: 结构体S{ 整数x; 整数y; } 为什么标准允许我们这样做: std::向量 vec; vec.emplace_back(1, 2); 但不允许这样做: 自动 ptr = std::make_...

回答 4 投票 0

使用 unique_ptr 遵循 pImpl 习惯用法的类的 unordered_map

这是一个简化的代码:https://godbolt.org/z/EnE76xMrP pImpl 将包含一个互斥体成员,这使得 pImpl 既不可复制也不可移动。但是 Foo 类有 pImpl 的 unique_ptr 作为成员

回答 1 投票 0

如何/是否可以有一个向量<unique_ptr<ABC>>?

修改一些旧代码,在这些代码中我手动处理指向抽象基类(ABC)具体实例的原始指针向量的生命周期。 所以向量的所有者有一个虚拟 dtor,它可以...

回答 2 投票 0

关于 unique_ptr 行为与 std::move 的特定用法的问题

基于排序操作,以下代码在 C++20 中定义良好吗?或者它是否具有未定义的行为? #包括 #包括 使用命名空间 std; 结构体A { ...

回答 1 投票 0

使用 unique_ptr 的方法安全吗?

我有一些管理 unique_ptrs 队列的代码。在其主循环中,它从队列中弹出一个条目,对其执行某些操作,然后允许该元素超出范围并被删除。 S...

回答 2 投票 0

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

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