unique-ptr

    -3熱度

    2回答

    我剛剛穩定的情況是一個unique_pointer引用作爲函數參數傳遞。所以我看了一下,發現代碼實際上是在編譯和運行。 這是爲什麼呢? 當你可以引用該指針時,指針是如何唯一的? 這裏我舉的例子: class Foo{ public: int bar{23}; }; void Bar(std::unique_ptr<Foo>& a_foo){ a_foo->bar

    1熱度

    1回答

    我有看起來像這樣的結構: struct TreeNode { int value; std::unique_ptr<TreeNode> left = nullptr, right = nullptr; }; 我想這是更好地使用unique_ptr比shared_ptr一棵樹implentation這樣的,對不對? 然後,我把幾個節點在priority_queue,例如像

    3熱度

    2回答

    我有一個類,它包含一個用unique_ptr管理的c-style數組。我想提供一個構造函數: class A { unique_ptr<T[]> p; public: A(int d, X x) : p(new T[d]) { //Transfer from x to p without copying } } 這樣我就可以建立我的對象的東西,如:

    1熱度

    1回答

    請幫我我所面臨的問題,結合... 我有一個類成員方法: std::unique_ptr<TopoDS_Shape> test(std::unique_ptr<TopoDS_Shape> Shape) const { std::unique_ptr<TopoDS_Shape> Result = std::make_unique<TopoDS_Shape>(); return(s

    0熱度

    2回答

    我花了一些時間試圖追蹤這個,但我在這裏有一個小例子,它顯示了我所看到的錯誤。如果我忽略重置行,它工作得很好。 #include <memory> #include <unordered_map> #include <iostream> class Base { public: virtual ~Base() = 0; }; Base::~Base(){} c

    1熱度

    1回答

    我收到一個奇怪的錯誤。當我試圖返回一個唯一指針到一個派生類型的函數中,該函數返回一個指向基類型的唯一指針,就像返回值被降級爲基類型一樣。我無法訪問它的任何方法或成員,並且如果我嘗試,程序會出現段錯誤。 如果我嘗試將e1重新分配給返回類型並調用它的「eval」方法,下面的示例會出現segfaults。奇怪的是,在返回之前調用eval方法正常工作。當我使用賦值變量作爲函數的參數之一時,似乎發生這種情況

    3熱度

    1回答

    我有一個是這樣的代碼: #include <memory> #include <vector> using namespace std; struct A { virtual ~A() = default; }; struct B : public A { }; template<typename... Ts> struct C { C() : v_({n

    2熱度

    2回答

    我試圖創建一個簡單的結構體來保存對其父項的某些值的引用。父存儲在向量內的unique_ptr內。它在被移動之前被實例化。運動後,參考課程不再有效。我找到了重新實現它們的方法,但我討厭解決方案(如下所示)。我認爲移動構造函數在collection.push_back(std::move(d))上被調用,但是它不是Derived的情況。雖然這可能是unique_ptr,但我不確定。 我的問題是 - 什

    9熱度

    1回答

    是否可以安全地傳遞函數參數,如getAName(getA().get())? getA()返回對象unique_ptr<A>。 我在VS 2010上測試下面的整個代碼,它的工作原理。但我想確定它是否是C++標準,是否可以安全地使用其他C++編譯器? #include "stdafx.h" #include <memory> #include <iostream> using namespa

    2熱度

    1回答

    我有一個數據結構。它提供了用於添加或刪除其內部集合中項目的API。在內部,結構使用std::unique_ptr來維持每個項目的使用壽命。這意味着隱含地「添加」項目將內存的所有權轉移給我的數據結構。 我已經在這個API的評論中清楚地記錄了這一點,但我想知道;有沒有事實上的名稱或動詞我可以附加到我的API,呼籲注意這個重要的副作用? 例如:AddItem(Item* item)似乎不足以暗示所有權轉