使用 std::auto_ptr 的意义
auto_ptr的含义是什么? 看这段代码: #include #include class A { public: ~A() { std::cout << "DEST"; }; }; void func(A* pa) { std::cout << "A…
将 QSharedPointer 与 new[] 一起使用会产生“不匹配的 free()/delete/delete[]”在瓦尔格林德
我有以下代码: QPair, int> someclass::somefunction() { int siz = data_size(); QSharedPointer buffer(new unsigned int[siz]); // Fill the buff…
__restrict 和 shared_ptr 黑客
以下安全吗? struct K { ... } struct A { A(int psize) : size(psize), foo(nullptr), bar(nullptr) { auto dataptr = (K*)_aligned_malloc(sizeof(…
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来避免…