std::shared_ptr 和 std::auto_ptr 的正确用法
我知道以下智能类型的基本定义以及如何使用它们。但是我不太确定这些地方/情况 其中: std::auto_ptr 应该优先于 std::shared_ptr。 std::shared_ptr …
何时使用shared_ptr,何时使用原始指针?
class B; class A { public: A () : m_b(new B()) { } shared_ptr GimmeB () { return m_b; } private: shared_ptr m_b; }; 假设 B 是一个在语义上不…
Google 可以模拟具有智能指针返回类型的方法吗?
我有一个返回智能指针的工厂。无论我使用什么智能指针,我都无法让 Google Mock 来模拟工厂方法。 模拟对象是纯抽象接口的实现,其中所有方法都是虚拟…
当作为参数传递时,它如何将 _bstr_t 转换为 BSTR?
举一个简单的例子: _bstr_t smartString(L"MyString"); Process(smartString); // takes BSTR. 最初我以为 _bstr_t 有一个从 _bstr_t 转换为 BSTR 的…
将智能指针分配给_variant_t是否需要手动AddRef()?
这是一个示例片段: _variant_t var; var.vt = VT_UNKNOWN; var.punkVal = unknownInterfaceSmartPointer; unknownInterfaceSmartPointer->AddRef(); …
处理可能不指向任何内容的指针
我在管理器内保存的指向其基类的指针向量中有一组对象: std::vector objectVec; 类可能希望使用管理器中的 Add() 方法生成其中一个对象。问题是他们…
在使用 CreateInstance 重新分配之前需要释放 com_ptr_t 吗?
在具有 _com_ptr_t 成员的 C++ 类中,如果在同一指针上重复使用 CreateInstance() 来获取 COM 对象的新实例而不首先执行 Release(),是否会发生内存泄…
C++:使用直接返回shared_ptr的函数的值是一个坏主意吗?
例如: boost::shared_ptr test() { boost::shared_ptr x(new int(3)); return x; } void function() { int y = *test(); ... } 使用shared_ptr来避免…
检测 Ref-counted COM 对象上的内存泄漏(Addref without Release)
我正在编写一个 Direct3D 10 应用程序,并希望确保没有 COM 对象泄漏。 是的,我用 CComPtr 包装接口,但无论如何我都想进行泄漏检查,出于同样的原因…
一起使用 smart_pointer 和 set_new_handler
是否需要担心将 set_new_handlers 与智能或自动指针结合使用,或者库中包含具有精致错误处理功能的处理程序? 谢谢…
将 boost::intrusive_ptr 与嵌套类一起使用
具体来说,我需要声明(据我所知) intrusive_ptr_{add_ref,release} 作为我引用的类的朋友: #include using boost::intrusive_ptr; class Outer { p…
COM 中 CComPtr 相对于 CComQIPtr 有何用途?
任何人都可以解释一下,COM 中 CComPtr 相对于 CComQIPtr 有什么用处? CComPtr Sample1; CComQIPtr Sample2; …
如何使用 new 运算符检查内存分配失败?
就在最近,我将项目语言从 C 切换为使用 C++。 对于 C,我使用 malloc,然后检查 malloc 是否成功,但对于 C++,我使用“new”来分配内存,我想知道您…