unique-ptr

    1热度

    2回答

    我有问题在unique_ptr中间的const_iterator上使用std :: rotate。 我曾尝试: std::vector<std::unique_ptr<Object> >::const_iterator middle; // middle is pointing at somewhere within vec defined elsewhere. std::rotate(vec

    4热度

    1回答

    我一直在使用原始指针进行依赖注入,并决定将我的代码转换为使用shared_ptr。这工作,但我想知道我是否可以使用unique_ptr?在我的例子中,MyClass将管理信用卡服务的生命周期。 class PaymentProcessor { PaymentProcessor(?? creditCardService): :creditCardService_(credit

    7热度

    4回答

    使用unique_ptr创建对象并赋予容器所有权是没有问题的。如何通过原始指针去除元素? std::set<std::unique_ptr<MyClass>> mySet; MyClass *myClass = new MyClass(); mySet.insert(std::unique_ptr<MyClass>(myClass)); // remove myClass from my

    1热度

    2回答

    所以我有std::vector<std::unique_ptr<Base>> vec,我试图动态地对它进行排序,因为Derived1与Derivedn(Derivedn总是> Derivedn-1> ...> Derived1)(比如n = 10左右)之间存在逻辑比较每个Derivedx都有自己与Derivedx的不同比较。作为一个例子,认为10位整数> 9位数整数> 1位整数,但在每个派生类53

    0热度

    1回答

    我从Visual c得到warning C4355: 'this' : used in base member initializer list ++ 2010: 我有一个类拿着手柄,我想自动关闭句柄即使ctor为类失败(所以它的dtor不叫)。但是,我不想费心制作一个整体的句柄包装类,而宁愿将它放在一个智能指针中。所以我写了这个: foo.h ~~~~~ class Foo {

    1热度

    3回答

    在C++ 11中,我缺少一个用于将指针分解为std::unique_ptr的合成糖。因此,我写了以下小帮手函数std::uniquify_ptr,通常用于易变(非构造函数)赋值的可变类成员(通常是不同种类的缓存)。 #include <memory> namespace std { template<typename T> inline unique_ptr<T> uni

    30热度

    5回答

    我曾尝试以下: std::function<void()> getAction(std::unique_ptr<MyClass> &&psomething){ //The caller given ownership of psomething return [psomething](){ psomething->do_some_thing(); //p

    20热度

    2回答

    如何在不将容器的所有权从容器中取出的情况下访问容器的unique_ptr元素(通过迭代器)?当一个迭代器获得容器中的元素时,容器的元素所有权仍然存在?如何取消引用迭代器以访问unique_ptr?这是否执行unique_ptr的隐式移动? 我发现我使用shared_ptr的很多时候我需要存储元素的容器(不是值),即使容器在概念上拥有的元素和其他代码只是希望操纵元素的容器,因为我害怕不能实际访问容器

    55热度

    4回答

    根据N3290 std::unique_ptr在其构造函数中接受deleter参数。 但是,我不能在Windows中使用Visual C++ 10.0或MinGW g ++ 4.4.1,也不能在Ubuntu中使用g ++ 4.6.1。 因此,我害怕我对它的理解是不完整或错误的,我无法看到明显被忽略的删除参数,所以任何人都可以提供一个工作示例? 最好我想看看它是如何工作的unique_ptr<Bas

    0热度

    1回答

    在运行时关闭我的程序时出现错误:“crt检测到应用程序在堆缓冲区结束后写入内存。”我通过析构函数将程序执行过程跟踪到唯一ptr的删除器,并在调用deleter函数时发生了错误。我想提到的另一个问题是,由于某些原因,唯一ptr所在的类defenition要求它具有公共拷贝构造函数。我尝试在另一个具有不同类和相同项目的项目中复制这些问题,删除复制构造函数和析构函数并更改访问实验室。我无法复制相同的问题