shared-ptr相关内容

enable_shared_from_this - 空内部弱指针?

我用 enable_shared_from_this<基地以及GT; ,然后从基本继承。当试图使用 shared_from_this()在派生的构造(未初始化列表),我得到一个异常。原来,该内部弱指针为空,并在所有没有指向这个。这怎么可能发生?我的其他使用案例正是这种工作完全正常。我甚至不知道从哪里开始。我低头看了看 enable_shared_from_this 来源$ C ​​$ C,它 ..
发布时间:2016-08-12 17:30:43 C/C++开发

为什么GoogleMock泄露我的shared_ptr?

我用GoogleMock / GoogleTest进行测试,和我看到一些奇怪的行为时有匹配一个shared_ptr了假作为参数,并期望被称为在同一个shared_ptr的。违规件code的: 的#include< gmock / gmock.h> #包括LT&; GTEST / gtest.h>#包括LT&;升压/ shared_ptr.hpp> #包括LT&;升压/ m ..
发布时间:2016-08-12 17:30:40 C/C++开发

正从shared_ptr的一个正常的PTR?

我有类似的shared_ptr<类型> T(makeSomething(),mem_fun(安培;类型:: DELETEME)) 我现在需要调用C风格独具特色的功能,需要一个指向键入。我如何得到它从的shared_ptr ? 解决方案 另一种方式来做到这将是使用&功放的组合; 和 * 运营商: 的boost :: shared_ptr的<富> foo_ptr(新 ..
发布时间:2016-08-12 17:25:20 C/C++开发

创建一个boost :: shared_ptr的到一个现有的变量

我有一个现有的变量,例如 int类型的= 3; 如何我现在可以创建一个的boost :: shared_ptr的到 A ?例如:的boost :: shared_ptr的< INT> a_ptr =安培; A; //这不起作用 解决方案 虽然你应该把变量到托管指针上的创作,从现有的指针做到这一点。为int * A = INT新; 提高:: shared_ptr的< ..
发布时间:2016-08-12 17:24:31 C/C++开发

如何处理在构造this指针?

我有创建它们的构造函数中的其他子对象,传递“这个”所以孩子可以节省指针回到它的父对象。我使用boost :: shared_ptr的广泛在我的编程作为一个更安全的替代标准:: auto_ptr的或原始指针。因此,儿童将不得不code,如的shared_ptr<家长和GT; ,并提升提供了 ..
发布时间:2016-08-12 17:24:11 C/C++开发

我应该使用boost :: shared_ptr的到std :: shared_ptr的切换?

我想实现与 -std =的C ++ 0x 在GCC的C ++ 0x的支持。我并不完全一定需要任何目前在GCC 4.5(很快支持4.6 C ++ 11功能的的),但我想开始习惯他们。例如,在我使用的迭代器的几个地方,一个汽车类型将是有益的。 但同样,我也不需要任何当前支持​​的功能。这里的目标是鼓励我,以纳入新标准的功能融入我的编程“词汇表”。 从你知道C ++ 11的支持是什么,它​​是一个好 ..
发布时间:2016-08-12 17:23:12 C/C++开发

shared_ptr的VS的scoped_ptr

的scoped_ptr 不能够复制和被删除了范围。因此,它是一种限制的shared_ptr 。因此,除了在案件似乎当你真的需要限制复制操作的shared_ptr 是更好地使用。因为有时候你不知道你需要创建对象或没有的副本。所以,问题是:除了上面提到的情况下,我们可以认为的shared_ptr 是更好的(或推荐)改为使用的scoped_ptr 。请问的scoped_ptr 工作快得多从的shared ..
发布时间:2016-08-12 17:23:08 C/C++开发

与升压的static_cast :: shared_ptr的?

什么是相当于一个的static_cast 与的boost :: shared_ptr的? 在换句话说,怎么做我不得不重写以下 基础* B =新派生的(); 派生* D =的static_cast<衍生*>(二); 当使用 的shared_ptr ?的boost :: shared_ptr的<基地以及GT; B(新派生的()); 提高:: shared_ptr的<衍生 ..
发布时间:2016-08-12 17:22:48 C/C++开发

intrusive_ptr在C + + 11

请问C ++ 11不得不 intrusive_ptr 等价的东西的boost ::? 我的问题是,我在我的C ++ code A C风格的界面。因此,接口两侧可以使用C ++,但暴露C接口所需的兼容性的原因。我不能使用的std :: shared_ptr的,因为我有过两个(或更多)智能指针来管理的对象。我无法弄清楚的东西,如的boost :: intrusive_ptr 的解决方案。 先谢谢了 ..
发布时间:2016-08-12 17:15:46 C/C++开发

如何有意要删除一个boost :: shared_ptr的?

我有许多的boost :: shared_ptr的< MyClass的> 的对象,并在某些时候我故意要删除他们中的一些以释放一些内存。 (我知道在这一点上,我永远不会需要指向的 MyClass的的对象了。)我怎样才能做到这一点? 我想你不能只是叫删除()与原始指针,我与 get()方法获得。 我见过一个函数 get_deleter(shared_ptr的< T>常量和放 ..
发布时间:2016-08-12 17:14:23 C/C++开发

什么是你的typedef'ing shared_ptr的约定?

我命名约定typedef'ing了boost :: shared_ptr的模板之间的倒装假摔。例如: 的typedef的boost :: shared_ptr的<富> FooPtr; 解决一项公约之前,我想看看别人用什么。你的习惯是什么? 编辑: 对于那些内嵌套的富类型定义,不烦你,美孚现在是如何将其传递“意识”?这似乎打破封装。这个怎么样:类Foo { 上市: 的t ..
发布时间:2016-08-12 17:13:55 C/C++开发

提振,共享PTR VS弱PTR?它何时使用?

在我当前的项目我使用的boost :: shared_ptr的相当广泛。 最近我的同胞队友也使用的weak_ptr 启动。我不知道该用哪一个时。 除了这个,我应该怎样做,如果我想的weak_ptr 转换为的shared_ptr 。难道把一个锁的weak_ptr 来在其他线程创建一个的shared_ptr 影响我的code? 解决方案 在概括和总结, 的强大的指针的保证自己的有效性。使 ..
发布时间:2016-08-12 17:12:56 C/C++开发

是否有使用make_shared创建一个shared_ptr的任何负面影响

是否有使用 make_shared&LT任何缺点; T>()而不是使用的shared_ptr< T>(新T)。 Boost文档状态 有过反复请求 用户对于一个工厂函数 创建特定类型的对象和 返回一个shared_ptr它。除了 便利性和风格,这样的功能 也是异常安全 相当快,因为​​它可以使用 同时为一个单一的分配 对象及其相应的控制 块,消除了显著 ..
发布时间:2016-08-12 17:12:53 C/C++开发

NULL指针与升压:: shared_ptr的?

什么是等同于以下内容: 的std ::矢量<符* GT; VEC; vec.push_back(NULL); 与的boost :: shared_ptr的打交道时 ?它是下列code?的std ::矢量<提高:: shared_ptr的<富> > VEC; vec.push_back(提高:: shared_ptr的<富>()); 请注意:我可能推 ..
发布时间:2016-08-12 17:12:50 C/C++开发

升压:: shared_ptr的和std :: shared_ptr的同居

我想用的boost ::登录在某些时候,但我不能传递的std :: shared_ptr的作为参数,因为编译器(VS2010)无法将其转换成的boost :: shared_ptr的。 我真的不喜欢的事实,他们是外星人彼此。 有一个转换成另一个,以便它们不绊倒彼此安全和透明的方式? 我不认为这是重复的 ..
发布时间:2016-08-12 17:12:33 C/C++开发