我在一个类中有几个容器,比如vector或map,它们包含着指向位于堆上的对象的shared_ptr。 例如:template <typename T> class MyExample { public: private: vector<shared_ptr<...
我想请问您在C ++中构造函数的最佳实践。 我不太确定在构造函数中应该做什么,不应该做什么。 我只应该将其用于属性初始化、调用父级构造函数等吗?还是可能将更复杂的功能放入其中,例如读取和解析配置数据,设置外部库等。 或者我应该为此编写特殊函数?即 init() / cleanup()? ...
我希望在某个时候使用 boost::log,但是我无法将 std::shared_ptr 作为参数传递,因为编译器(VS2010)不能将其转换为 boost::shared_ptr。 我不太喜欢它们彼此之间是外来的事实。 是否有一种安全和透明的方法将它们相互转换,以便它们不会互相干扰? ...
我想要比较两个std::weak_ptr或一个std::weak_ptr和一个std::shared_ptr是否相等。 我想要知道的是,这两个weak_ptr/shared_ptr所指向的对象是否相同。 比较结果应该是负的,不仅当地址不匹配时,还应该在底层对象被删除后,通过偶然的方式重新构造...
我正在尝试使用std::shared_ptr和自定义删除器。具体来说,我正在将其与SDL_Surface一起使用,如下所示:std::shared_ptr<SDL_Surface>(SDL_LoadBMP(....),SDL_FreeSurface); 编译和运行都没有问题。然而,...
在我的当前项目中,我广泛使用了boost::shared_ptr。 最近,我的团队成员也开始使用weak_ptr。我不知道应该在什么情况下选择哪个。 除此之外,如果我想将weak_ptr转换为shared_ptr,我该怎么做?通过对weak_ptr进行锁定以创建shared_ptr会影响到...
我有许多boost::shared_ptr<MyClass>对象,某个时刻我有意删除其中的一些以释放一些内存。(此时我知道我将不再需要指向的MyClass对象。)我该怎么做? 我猜不能只使用get()获取裸指针并调用delete()。 我在boost::shared_ptr中看...
我对shared_ptr还不熟悉,正在尝试弄清楚.reset()函数的确切功能。#include <memory> #include <stdio> using namespace std; class SomeClass{}; int main() { s...
我了解使用unique_ptr和static_pointer_cast会导致所包含数据的共享所有权。 换句话说,我的意图是: 我理解使用unique_ptr和static_pointer_cast会导致所包含数据的共享所有权。 换言之,我想要做的是:unique_ptr<Base>...