smart-pointers 相关问题

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

脱离主题时发生崩溃

我正在尝试使用 C++ 11 智能指针实现观察者设计模式。下面是我的代码。如果我们试图从主题中删除观察者,下面的程序会崩溃。 //观察者 cl...

回答 0 投票 0

在 Rust 中,Weak<T> 如何知道内部值何时被删除?

std::rc::Weak 具有以下定义: 酒吧结构弱{ ptr: 非空>, } 据我了解,当没有更多的 Rc 时,RcBox&...

回答 1 投票 0

如何使用智能指针实现构建器设计模式?

我想在 C++ 中为我正在从事的项目实现构建器模式。我发现了很多这种使用原始指针的设计模式的例子,但没有一个使用智能指针。 ...

回答 1 投票 0

如何将变量传递给 std::unique_ptr 的自定义删除器(lambda 函数)?

我想打开一个文件并对文件执行一些操作,testOpen 和 testClose 是 API 函数 test_open 和 test_close 的包装器,因此如果执行这些操作时出错

回答 1 投票 0

如何解决这个运算符重载问题?

下面是类Test的定义: 类测试{ 私人的: 静态整数计数; 诠释 x; 民众: 测试(int _x = 0):x(_x){ 计数++; } 〜测试(){ 数数 - ; ...

回答 0 投票 0

C++ 智能指针给出 Invalid free, Invalid read

测试智能指针——使用 valgrind 运行以下示例给出:无效的自由……无效的读取……等等。我该如何解决这个问题? 我在 Ubuntu 22.04.1 上使用 g++ 11.3.0: g++ -g -Wall -o 温度

回答 1 投票 0

std::unique_ptr with custom deleter: regular vs array type

说我有两个功能: const char* get_string(int id); bool free_string(const char* str); 我想为他们写一个 std::unique_ptr 包装器。 根据这个答案,我创建了以下内容: 模板 ...

回答 1 投票 0

std::move() 会调用 LHS unique_ptr 所属对象的析构函数吗?

考虑以下代码: #包括 #包括 #包括 // 我知道这是 violationg 规则 5 类 ElfData { 私人的: std::字符串名称; 普...

回答 1 投票 0

从返回 c++ 智能指针的共享库(mac 上的 dylib)导出符号时出现问题

我有一些关于如何在共享库之间导出功能的问题,尤其是如果共享库正在使用 managed_pointers 并且我们需要在运行时加载它们。 我有两个申请

回答 0 投票 0

为什么调用 std::make_shared 后 std::shared_ptr 的弱引用计数不为零?

执行下面的第 40 和 41 行后,调试器告诉我 std::shared_ptr 的 a 和 b 的弱引用计数为 2。 Value 的 ctor 没有存储任何强引用或弱引用......

回答 0 投票 0

如何将带有新对象的 std::unique_ptr 转换为 std::make_unique? [关闭]

我有这段代码将 std::unique_ptr 返回给某种类型的东西。目前,我只是写如下: 返回 std::unique_ptr(新类(...

回答 1 投票 0

了解 unique_ptr get() 函数

unique_ptr get() 会阻止对象通过一些引用计数被销毁吗? 考虑以下程序: #包括 #包括 int* getMemory(int...

回答 1 投票 0

如何在运行时以惯用方式存储 unique_ptr 或 shared_ptr?

我有一个类 Foo 的实例,它将传递一个指向依赖对象的智能指针。这可能是一个 unique_ptr,如果调用者想将对象的所有权转移给 Foo 实例,或者一个

回答 1 投票 0

用智能指针理解 C++ 类型转换

当我玩类继承和智能指针的一些侧面时,我发现了一些我不理解的关于现代 C++ 类型转换的东西。我确定有一个合乎逻辑的解释......

回答 1 投票 0

Rust 中 Drop 特性的实际用例?

我一直在阅读 Rust 书,在第 15.3 章中他们介绍了 Drop 特性。它说这个特性对于实现智能指针很重要(“第二个特性对智能指针很重要......

回答 1 投票 0

检测对象是否为智能指针所有

我有一个派生自 enable_shared_from_this 的类和一个通过调用 shared_from_this() 返回共享指针的方法。我想在该方法中检测对象是否由

回答 3 投票 0

如果原始指针超出范围,智能指针是否保留分配的内存?

我找不到类似的例子,但以下有效吗? std::unique_ptr x; if (true) { // 假设某些条件为真 整数 * y = 新整数(5); // 假设一个 fu...

回答 1 投票 0

如何为 std::shared_ptr 和 std::unique_ptr 编写模板化工厂函数

我经常写工厂,其签名类似于以下内容: std::unique_ptr createUnique(IDType id); std::shared_ptr createShared(IDType id); 当...

回答 3 投票 0

std::shared_ptr 意外地更改其底层指针,尽管它是常量

我尝试运行这段代码: //find() 应该返回一个 std::optional>> //pieces是一个抽象类 常量自动查找结果 =

回答 0 投票 0

为什么在这段代码中使用共享指针会导致非法引用非静态成员错误? [关闭]

我有两个类 Edge 和 Line,它们分别表示图形上节点之间的边和与该边关联的线,在我的程序上下文中,它是一个充当 v 的对象...

回答 0 投票 0

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