std::auto_ptr<>::operator = 重置/取消分配其现有指针?
我在这里读到了关于std::auto_ptr的内容: :运算符= 但是请注意,左侧 对象不会自动 当它已经指向时释放 某个对象。你可以明确地做 通过调用成员函数…
为什么它可以在GNU/C++中编译,而不能在VC++2010 RTM中编译?
#include #include #include #include "copy_of_auto_ptr.h" #ifdef _MSC_VER #pragma message("#include ") #include // http://gcc.gnu.org/onlined…
什么是 auto_ptr_ref,它实现了什么以及如何实现它
auto_ptr_ref文档这里说这个 这是一个工具类,允许某些允许将 auto_ptr 对象传递给函数并从函数返回的转换。 有人可以解释一下 auto_ptr_ref 如何帮助…
为什么 auto_ptr 的接口指定两个类似复制构造函数的构造函数
我正在查看此链接上的 auto_ptr 文档 自动指针 有些事情我无法完全理解为什么要这样做。在接口部分,有两个关于其复制构造函数的声明: 1) auto_ptr(a…
C++: auto_ptr +前向声明?
我有一个这样的类: class Inner; class Cont { public: Cont(); virtual ~Cont(); private: Inner* m_inner; }; 在 .cpp 中,构造函数使用 new 创建…
使非对象资源符合 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; //... } 为了…