smart-pointers 相关问题

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

RAII与std::函数

std::function是否像std::shared_ptr和std::unique_ptr一样具有智能性质?我想不是吧?我有一个std::function,它是一个类成员,如下所示。 class MyClass { typedef std::function

回答 1 投票 0

为什么实例化一个shared_ptr要调用destructor?

谁能解释一下为什么在初始化同类型对象的行中调用了bar类的析构器?#include #include ...

回答 1 投票 1

强制将对象创建为shared_ptr的断言?

当使用std::shared_ptr时,通常可以使用std::enable_shared_from_this 这样你就可以访问shared_from_this()函数。使用 ... 的一个要求。

回答 1 投票 0

Bison中的std::shared_ptr导致成员错误。

我想通过使用std::shared_ptr使bison的内存效率更高。我不想使用原始指针。我使用节点系统作为解析树,所以我将YYTYPE定义为std::shared_ptr。 . ...

回答 1 投票 0

赋予容器对其子代的所有权,但让子代使用智能指针存储对其父代的引用。

我想让一个树中的Node的所有子节点为其父节点所拥有,并让每个子节点存储一个对其父节点的引用。这样一来,当一个父节点被销毁时,它的所有 ...

回答 1 投票 0

如何围绕一个C "类 "泛化这个C++包装器?

我正在围绕一个C库编写一个C++包装器。下面是我的策略的一个例子。/ 头文件 class LibrdfUri { / wrapper around librdf.h librdf_uri* * * 如果...

回答 1 投票 1

如何用unique_ptr执行动态_cast?

我的类层次结构如下: class BaseSession : public boost::enable_shared_from_this。 class DerivedSessionA : public BaseSession class DerivedSessionB : public BaseSession ...

回答 4 投票 26

我是否需要使用unique_ptr而不是std::function?

我有一个工厂返回数据处理的函数 class Factory { function build(); } 现在我很纠结,返回类型是否应该是函数。

回答 1 投票 0

如何从原始C堆内存指针初始化unique_ptr?[重复]

我正在使用一个函数(它是一个库的一部分),它返回一个原始的uint8_t*指针,指向堆上分配的一些内存,并保存图像像素数据。这个函数的调用者是 ...

回答 1 投票 0

为什么“ weak.lock()”返回“ nullptr”,其定义为“自动弱= std :: make_shared (42);”?

为什么weak.lock()为什么在此代码中最简洁地返回nullptr:std :: weak_ptr weakPtr1 = std :: make_shared (6 ;; std :: cout << weakPtr1.lock()<< std :: endl;而......>

回答 1 投票 0

什么情况下需要共享的智能指针,但不能使用唯一的?

[似乎当两个指针都访问同一对象时,共享指针可能在线程间很有用。但是,否则我想不起来需要共享指针和一个...

回答 1 投票 0

如何最好地使用智能指针来修复内存泄漏?

我偶然发现,这看起来像是内存泄漏:void method(const string param){if(auto * object = createObject(param))use(object);如何最好地解决此内存泄漏?应该...

回答 1 投票 0

使用不可移动,不可复制的对象初始化unique_ptr

我有一个类,需要将其存储在unique_ptr的向量中。但是,我看到的是C2664错误,如下所示:“ AffinityThreadGroup :: AffinityThreadGroup(AffinityThreadGroup &&)无法转换...

回答 1 投票 0

“ std :: shared_from_this”不能被其派生类继承吗?

std :: shared_from_this不能被其派生类继承吗?为什么此代码段不编译(请检查http://cpp.sh/7llcr)?我已经阅读了文档(https://en.cppreference.com/w/cpp / ...

回答 1 投票 0

有没有办法使用sizeof函数和C中的指针来获取字符串的正确大小

int main(){char * s =“ hello world!”; printf(“%d \ n”,sizeof(s));我知道它将返回指针的大小。但是我想知道有什么方法可以使用...

回答 2 投票 0

无法重置std :: set <>中的std :: shared_ptr对象……为什么?

在下面的c ++中,调用list(vector)内部的reset()时,映射既没有错误也没有警告。但是,当我尝试在集合中进行操作时,出现错误。错误消息是[没有匹配的成员函数用于调用...

回答 1 投票 0

是否可以在C ++中的类和向量中都存储一个unique_ptr?

我试图持有指向向量(来自基类)和派生类对象的唯一指针,因此以后我可以为所有人调用方法。但是我想从...

回答 1 投票 0

检索某个类的“内部”类的地址

我有一个称为ValuationFunction的虚拟基类,该基类基本上只包含参数,并且可以基于一些计算输出值。所有派生类的行为基本相同...

回答 1 投票 0

我何时应该在智能指针上使用原始指针?

阅读此答案后,似乎最好的做法是尽可能多地使用智能指针,并将“正常” /原始指针的使用减少到最小。是真的吗?

回答 8 投票 60

使用指向C库中结构的智能指针,它通过typedef的实现(即不完整的类型)隐藏了实现]]

我正在尝试使用一个C库,该库基本上只将typedef公开给内部使用的结构。问题是我想使用智能指针来管理原始指针的生命周期,这些原始指针的生命周期...

回答 1 投票 0

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