tr1::unique_ptr 和 SelectObject()
我有一些管理异常安全的原始代码,如下所示: void foo() { HDC hdc = //get an HDC HBITMAP hbitmap = //get an HBITMAP HGDIOBJ hbitmapOld = Selec…
共享指针:指针到指针
通用指针允许您创建指向指针的指针: void foo(Object **o) {} int main() { Object * o = new Object() foo(&o) } shared_ptr 是否有类似的构造?…
scoped_ptr和shared_ptr可以混合使用吗?
想象一下,我在方法/函数的堆上创建了 Foo 的实例,并将其传递给调用者。我会使用什么样的智能指针? smartptr new_foo() { smartptr foo = new Foo()…
enable_shared_from_this 和堆栈上的对象
有没有办法防止对堆栈分配的对象调用shared_from_this()? 该enable_shared_from_this<>基类列表中的内容对于类用户来说是一个强有力的指标,但是…
在 C++ 中将智能指针放入类数据(作为类成员)中的正确方法是什么?
假设我有一个类 Boda: class Boda { ... } 并且我在这个类中有一个成员 cydo,我希望它成为一个智能指针(也就是说,我希望它在类被销毁时自动释放)…
是否可以使用 C++智能指针与C的malloc一起使用?
我的一些代码仍然使用 malloc 而不是 new。原因是因为我害怕使用 new 因为它会抛出异常,而不是返回 NULL,我可以轻松检查。将每次调用 new 包装在 tr…
std::auto_ptr 到 std::unique_ptr
随着新标准的到来(以及某些编译器中已经可用的部分),新类型 std::unique_ptr 应该是 std::auto_ptr 的替代品。 它们的用法是否完全重叠(这样我可…
Boost shared_ptr:如何使用自定义删除器和分配器
自由函数allocate_shared可以与任何符合标准的分配器一起使用。但是shared_ptr的构造函数和reset方法呢? template<class Y, class D, class A> s…
句柄和智能指针一样吗?
我即将完成 Koenig & Moo 的 Accelerated C++ 以及第 13 章和第 15 章14 他们列出了一些 Handle 类的想法和实现(简单、共享、引用计数)。 这些类…
什么时候适合使用 C++ GUI 中的智能指针(带有主循环的程序)
我倾向于使用 std::tr1::shared_ptr 在我的 GUI 程序中自动管理指向实用程序类的指针。 基本上,这是程序的骨架: int main () { Allocate dynamic me…
除了 Boost 之外,我在哪里可以获得 C++ 的单文件智能指针实现?
我想开始在我的代码中使用智能指针,但我真的不想使用 Boost,因为它太大了。 谁能推荐一种简单的单文件智能指针实现? 谢谢,博达·西多。…
将智能指针传递给函数(接受 void*)而不调用指针对象的析构函数
我有自己的智能指针实现,它使用引用计数作为所有权机制(注意:我已经测试过它并且没有错误)。 以下是我的代码流程。 创建对象并创建指向该对象的智…
C++ “智能指针”自动转换为裸指针但无法显式删除的模板
我正在一个非常大的遗留 C++ 代码库中工作,该代码库将保持匿名。作为遗留代码库,它在各处传递原始指针。但我们正在逐渐尝试使其现代化,因此也有一…