73得票8回答
我应该从使用boost::shared_ptr转换到std::shared_ptr吗?

我想在GCC中启用对C++0x的支持,使用-std=c++0x。我不一定需要GCC 4.5(和即将到来的4.6)中已支持的C++11特性中的任何一个,但我想开始逐渐习惯它们。例如,在我使用迭代器的几个地方,auto类型会很有用。 但再次强调,我不需要目前支持的任何特性。这里的目标是鼓励我将新...

68得票4回答
std::shared_ptr:reset()与赋值操作的区别

这是一个基础问题,但我没有找到先前的帖子。以下问题的标题听起来可能与我的问题相同,但问题本身与标题不符:is it better to use shared_ptr.reset or operator =? 我对std :: shared_ptr的reset()成员函数的目的感到困惑:除了赋...

67得票2回答
错误:在'ClassName'之前缺少类型说明符

shared_ptr<Shape> circle(new Circle(Vec2f(0, 0), 0.1, Vec3f(1, 0, 0))); shared_ptr<Shape> rect(new Rect2f(Vec2f(0, 0), 5.0f, 5.0f, 0, ...

67得票1回答
为什么没有std::shared_ptr<T[]>的特化版本?

标准提供了std::unique_ptr的模板特化,它在析构函数中正确调用delete[]。 void func() { std::unique_ptr&lt; int[] &gt; arr(new int[10]); ....... } 使用std::shared_ptr...

66得票3回答
从boost::shared_ptr获取普通指针?

我有一个类似于 boost::shared_ptr&lt;Type&gt; t(makeSomething(), mem_fun(&amp;Type::deleteMe)) 的东西。 现在我需要调用需要指向 Type 的指针的 C 样式函数。我该如何从 boost::shared_ptr 中获...

66得票5回答
经过shared_ptr的代价是什么?

我在我的应用程序中广泛使用std::tr1::shared_ptr。这包括将对象作为函数参数传递。请考虑以下内容:class Dataset {...} void f( shared_ptr&lt; Dataset const &gt; pds ) {...} void g( shared_...

64得票7回答
std::shared_ptr 线程安全性

我读到过: "即使被复制的 shared_ptr 对象共享所有权,多个线程也可以同时读写不同的 shared_ptr 对象。" (MSDN:标准 C++ 库中的线程安全) 那是否意味着更改 shared_ptr 对象是安全的? 例如,下面的代码是否被认为是安全的:shared_pt...

62得票2回答
如何获取由共享指针指向的对象?

我有一个问题。我们能否直接获取共享指针所指向的对象?还是应该通过get()调用来获取底层的原始指针,然后访问相应的对象?

57得票4回答
make_shared是否真的比new更高效?

我正在尝试使用C++11的shared_ptr和make_shared,并编写了一个小的玩具示例来查看调用make_shared时实际发生了什么。作为基础设施,我正在使用带有XCode4的llvm/clang 3.0以及llvm标准C++库。class Object { public: ...

57得票6回答
NULL pointer with boost::shared_ptr?

以下是相应的等效代码:std::vector&lt;Foo*&gt; vec; vec.push_back(NULL); 处理 boost::shared_ptr 时,是否是以下代码?std::vector&lt; boost::shared_ptr&lt;Foo&gt; &gt; vec; ...