smart-pointers 相关问题

一种抽象数据类型,它在提供附加功能时模拟指针,例如自动垃圾收集或边界检查

使用 std::unique_ptr 实现持续遵守

首先查看我遇到的问题,然后查看我的用例(我可能误用了 std::unique_ptr,所以我想添加一个关于我实际尝试执行的操作的注释)。 我的问题 我正在努力...

回答 1 投票 0

什么时候适合将 unique_ptr 分配给共享_ptr?

这是对此处提出的问题的后续:Does C++11 unique_ptr and shared_ptr能够转换为彼此的类型吗?更具体地说,是得票最高的答案。 令人窒息的片段...

回答 1 投票 0

如何在 C++ 中转换我的自定义共享指针

我正在用 C++ 创建一个自定义共享指针来了解这些东西是如何工作的。 我的实现不是通用目的,我只希望它与 Foo 类或其任何子类一起使用。 这我...

回答 1 投票 0

班级地图中的智能指针?

我正在尝试在地图中插入对象,建议我使用指针,所以这是我的代码: #包括 #包括 #包括 类人 { 私人的: INT...

回答 1 投票 0

如何在 C++ 标准库类中重载已重载的运算符?

我正在尝试实现我自己的矩阵类(二维数组),它使用 [] 运算符来访问其内容并使用 std::unique_ptr<> 来保存它 - 我知道有更简单/更好的方法解决...

回答 1 投票 0

尽管内存地址相同,Rust Arc 指针比较还是失败

在 Rust 中,我试图创建一组可以在某种目标/依赖链中相互关联的对象。我想我可以使用一个特征,并为每个对象分配一个“目标”......

回答 1 投票 0

可继承且可输入类型的 SmartPointer 类

我目前正在尝试创建一个自定义的 SmartPointer 类,与内置的 C++ 智能指针不同,它将执行我想要的操作。目标是能够将任何类/结构变成智能PO...

回答 2 投票 0

std::unique_ptr<DBusMessage> != nullptr 进入函数参数后

我正在尝试编写一个使用 DBus 与 BlueZ 交互的程序。根据我从 DBus 文档、BlueZ DBus API 文档和各种论坛收集的信息,我的思考过程......

回答 1 投票 0

std::binary_search 和 lower_bound 以及 unique_ptr 数组

我一直在尝试在 std::array> 上使用 std::binary_search 和 std::lower_bound 来掌握它。我遇到了以下问题: #包括 我一直在尝试在 std::binary_search 上使用 std::lower_bound 和 std::array<unique_ptr<int>> 只是为了掌握它。我遇到了以下问题: #include <array> #include <memory> #include <algorithm> int main() { std::array<std::unique_ptr<int>, 3> a = {std::make_unique<int>(1), std::make_unique<int>(2), std::make_unique<int>(5)}; auto t = std::binary_search(a.begin(), a.end(), 5, [] (std::unique_ptr<int> x, std::unique_ptr<int> y) { return x.get() < y.get(); }); return 0; } 我试图将我自己的比较放在这里,类似于使用std::sort之类的东西来完成。但是,在编译时出现错误cannot convert argument 1 from 'const _Ty' to 'std::unique_ptr<int,std::default_delete<int>>' 我应该改变什么才能使这项工作正常进行? 编辑:来自 Visual Studio 的完整错误消息 Severity Code Description Project File Line Suppression State Details Error C2664 'bool thng_already::<lambda_1>::operator ()(std::unique_ptr<int,std::default_delete<int>>,std::unique_ptr<int,std::default_delete<int>>) const': cannot convert argument 1 from 'const _Ty' to 'std::unique_ptr<int,std::default_delete<int>>' with [ _Ty=int ] Proj C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\algorithm 7028 当用 std::make_unique<int>(5) 替换 5 时,我们有一个不同的错误 Severity Code Description Project File Line Suppression State Details Error C2280 'std::unique_ptr<int,std::default_delete<int>>::unique_ptr(const std::unique_ptr<int,std::default_delete<int>> &)': attempting to reference a deleted function Proj C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\algorithm 7028 您的 lambda 按值获取参数。这意味着 binary_search 实现在将参数传递给 lambda 时必须复制参数。可以复制吗unique_ptr?不,这就是它不起作用的原因。改为通过 const 引用获取参数。 int main() { std::array<std::unique_ptr<int>, 3> a = {std::make_unique<int>(1), std::make_unique<int>(2), std::make_unique<int>(5)}; auto t = std::binary_search(a.begin(), a.end(), 5, [](const std::unique_ptr<int>& x, const std::unique_ptr<int>& y) { return x.get() < y.get(); }); return 0; }

回答 1 投票 0

C++中如何处理指针重复删除问题

最近我陷入了一个场景,在项目中同时使用原始指针和智能指针。 我有2节课。 Canvas里面又组成了另一个类CanvasItem。它存储 CanvasItem

回答 1 投票 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

复制传递给基类的shared_ptr

所以我有一个小的类层次结构,我需要将一个shared_ptr传递给接受右值的基类。然而,在其中一种情况下,我想获取shared_ptr以用于其中一个

回答 1 投票 0

如何返回结构体指针数组?

我想返回一个结构体指针数组。 我希望结构指针数组可以在主函数中访问。但它总是会破裂。我尝试过使用智能指针,但似乎...

回答 1 投票 0

在程序中调用 execv() 时智能指针的内存何时被清除?

我试图了解在从代码中调用 execv() 时共享(智能)指针拥有的内存何时被清除。 假设以下代码: #包括 类测试 { public: ~...

回答 1 投票 0

用新内存覆盖“对象管理共享指针”C++

我有一个简单的代码,如下所示,我正在试验 - #包括 #包括 类测试类{ 民众: TestClass(int a, int b) : mA(a), mB(b) { 标准...

回答 1 投票 0

Qt::make_shared 用于创建 QSharedPtr 作为 std::make_shared 用于创建 std::shared_ptr

正如 Bjarne Stroustrup 的《C++ 之旅》中所述,作为一种已知的 C++14 实践,应该避免在代码中使用裸露的 new 和删除。标准库为

回答 1 投票 0

unique_ptr声明后如何赋值?

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

回答 3 投票 0

静态函数的共享指针

我正在尝试通过使用智能指针来改进我的编码,并且目前正在尝试使用智能指针替换我们遗留代码库中的所有旧原始指针(std::unique_ptr 和 std::

回答 1 投票 0

C++ std:.auto_ptr 或 std::unique_ptr (支持多个编译器,甚至是旧的 C++03 编译器)?

我正在尝试更新一些C++代码,我想转向更现代的代码(c++11),但我仍然需要使用一些较旧的编译器(兼容c++03)来编译代码,因为支持的平台

回答 3 投票 0

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