auto-ptr

    3热度

    1回答

    我读here有关的std :: auto_ptr的<> ::运算符= 但请注意的是,左侧 对象不会自动释放 时,它已经指向 一些对象。在为其分配新值之前,您可以通过调用成员函数reset 明确执行 。 然而,当我阅读的头文件C:\Program Files\Microsoft Visual Studio 8\VC\ce\include\memory template<class _Other>

    1热度

    1回答

    #include <stdlib.h> #include <iostream> #include <memory> #include "copy_of_auto_ptr.h" #ifdef _MSC_VER #pragma message("#include <string>") #include <string> // http://gcc.gnu.org/onlinedocs/g

    7热度

    2回答

    考虑下面的代码: #include <iostream> #include <memory> #include <vector> using namespace std; struct A { int a; A(int a_):a(a_) {} }; int main() { vector<auto_ptr<A> > as; for (

    66热度

    4回答

    在传入的C++标准中auto_ptr会被弃用吗? unique_ptr是否应该用于所有权转移而不是shared_ptr? 如果unique_ptr不在标准中,那么是否需要使用shared_ptr?

    42热度

    3回答

    我与unique_ptr和右值移动哲学混淆。 比方说,我们有两个类别: std::vector<std::auto_ptr<int>> autoCollection; std::vector<std::unique_ptr<int>> uniqueCollection; 现在我希望下面的失败,因为没有告诉什么算法内部做,也许使内部枢副本之类的,这样翻录离开auto_ptr的所有权: std:

    0热度

    2回答

    代码段(正常指针) int *pi = new int; int i = 90; pi = &i; int k = *pi + 10; cout<<k<<endl; delete pi; [Output: 100] 代码段(自动指针) 案例1: std::auto_ptr<int> pi(new int); int i = 90; pi = &i; int k = *pi

    3热度

    6回答

    我初始化一个auto_ptr为NULL,后来在游戏中我需要知道它是否有NULL或不返回它或新副本。 我已经试过这 auto_ptr<RequestContext> ret = (mReqContext.get() != 0) ? mReqContext : new RequestContext(); 和其他一些类似的东西,铸造等,但G ++试图调用auto_ptr对象不存在操作? (三元运算符

    2热度

    2回答

    另一个构件我有一个类是这样的: class A { private: B* ptr; } 但乙PTR被不同的A对象之间共享。 如何使用auto_ptr,以便在A被破坏时B保持打开状态,以便指向相同ptr的其他A对象可以继续运行而不会出现问题。 这是否看行: class A { public: auto_ptr<B> m_Ptr; private: B* ptr;

    1热度

    4回答

    我已经在执行过程产生一定种类的物体(比方说,“富”类的),以追踪一些统计数据,并将其插入到一个或两个2个STL的地图应用程序,说: map<Foo*, int> map1; map<Foo*, int> map2; 我想知道什么是删除Foo对象的最佳方法。目前我的解决方案是遍历map1和map2,并将Foo指针放入一个集合中,然后对这个集合进行交互并在每个集合上调用delete。 有没有更有

    2热度

    2回答

    我想使用智能指针,如auto_ptr,shared_ptr。但是,我不知道如何在这种情况下使用它。 CvMemStorage *storage = cvCreateMemStorage(); ... use the pointer ... cvReleaseMemStorage(&storage); 我不确定,但我认为存储变量只是一个malloc'ed内存,而不是C++类对象。有没有办法将