使非对象资源符合 RAII 标准
在我的代码中,我使用 windows.h 中的 HANDLE。它们的使用方式 HANDLE h; if (!openHandleToSomething(arg1, arg2, &h)) { throw std::exception("ope…
auto_ptr 内容上的三元运算符不起作用
我将 auto_ptr 初始化为 NULL,稍后在游戏中我需要知道它是否为 NULL,是否返回它或一个新副本。 我已经尝试过这个 auto_ptr ret = (mReqContext.get(…
如何有效删除C++对象存储在多个容器中?自动指针?
我有一个应用程序,它在执行期间创建某种类型的对象(比方说,“Foo”类),以跟踪一些统计数据,并将它们插入两个 STL 映射中的一个或两个中,比如说…
std::auto_ptr、delete[] 和泄漏
为什么这段代码不会导致内存泄漏? int iterCount = 1000; int sizeBig = 100000; for (int i = 0; i < iterCount; i++) { std::auto_ptr buffer(new …
从函数返回多个 auto_ptr
我有一个函数,它在堆上分配两个变量并将它们返回给调用者。 像这样的事情: void Create1(Obj** obj1, Obj** obj2) { *obj1 = new Obj; *obj2 = new …
什么时候会使用 std::auto_ptr 而不是 boost::shared_ptr?
我们几乎已经在所有代码中使用 boost::shared_ptr,但是我们仍然有一些使用 std::auto_ptr 的孤立情况,包括单例类: template class SharedSingleton…
为什么这段代码只打印42?
有人可以向我解释为什么这段代码只打印“42”而不是“created\n42”吗? #include #include #include using namespace std; class MyClass { public: …
如何在必须复制构造的类中使用 std::auto_ptr ?
我有一个包含 std::auto_ptr 成员的类 foo,我想复制该成员,但这似乎是不允许的。 任务中也有类似的事情。 请参阅以下示例: struct foo { private: …
返回一个新对象以及另一个值
我想返回两个值,其中之一是一个新对象。 我可以使用 std::pair 来做到这一点: class A { //... }; std::pair getA() { A* a = new A; //... } 为了…
boost::ptr_vector 和 boost::any 的问题
好吧,所以我有一个疑问,我想知道这是否可能: 我正在使用一个数据库,其中包含通用数据(字符串、整数、布尔值等)。 每当构造一个对象或修改对象的…
为什么 auto_ptr 构造不能使用 = 语法
我遇到了一个对我来说没有多大意义的编译器错误: #include using namespace std; auto_ptr table = db->query("select * from t"); error: conversio…
VC2008中的自动指针构造函数
我有一个自动指针实现: template class GAutoPtr { T *Ptr; public: typedef GAutoPtr &AutoPtrRef; GAutoPtr(T *ptr = 0) { Ptr = ptr; } GAutoPtr(…
ATL CAutoPtr 和 STL std::auto_ptr 之间的区别?
我正在 MFC 中编写一些代码,我想使用自动指针。 我遇到过两个不同的类,它们看起来做同样的事情:CAutoPtr 和 std::auto_ptr 人们对这两种不同的实现…
auto_ptr 会防止这种情况发生吗?
我不太清楚 auto_ptr 在这种情况下是否会帮助我: class A { A(const B& member) : _member(B) {}; ... const B& _member; }; A generateA() { auto_p…
使用 C++ 来自 Objective C:如何分配/解除分配?
目前,我的 Objective C 类通过在创建所有者时执行 new 操作,并在销毁所有者时调用 delete 来使用 C++ 对象。 但还有别的办法吗? 我希望能够声明一…