unique-ptr

    0熱度

    3回答

    我對在VC++ 2015中看到的結果感到驚訝,並且需要幫助瞭解它是如何工作的。 struct MyType { MyType(int x_) : x(x_) { } int x; }; auto u = std::make_unique<MyType>(10); void* pv = &u; 這顯然失敗了,因爲u的地址不是一個指向MyType: MyType *p

    0熱度

    1回答

    如果我有一個正在管理std::unique_ptr的向量的類,那麼管理此資源的正確方法是什麼?我有一個最低工作示例。但是,運行此代碼時會出現分段錯誤。我想這是因爲main參考bin得到的std::move在AContainer::addValue D,但我不知道肯定,我不知道如何測試這種假設。 #include <memory> #include <vector> #include <iost

    2熱度

    1回答

    我已經閱讀了關於同一主題的多個類似問題,但我無法通過關注它們來解決問題。 我想存儲指向矢量,但我看到內存泄漏。我的代碼如下。 #include <iostream> #include <vector> #include <memory> class Base { public: virtual ~Base() {} }; class Derived : pub

    -3熱度

    1回答

    我有一個函數返回一個unique_ptr到數組元素,我注意到原始變量沒有得到更新。 爲什麼這項工作(一[5] == 6後): int a[10]; for (size_t i = 0; i < 10; i++) { a[i] = i; } int* ap = &a[5]; *ap += 1; 但 int a[10]; for (size_t i = 0; i <

    1熱度

    1回答

    我有一些C++代碼如下所示: #include <memory> void do_memory() { std::unique_ptr<int[]> ptr = std::make_unique<int[]>(50); int* ptr2 = new int[50]; delete[] ptr2; } 在第一種情況下,我創建一個唯一的指針爲int陣列,並

    0熱度

    1回答

    有關的unique_ptr缺失者的類型是智能指針的一部分,但如何是幫助編譯器相比,shared_ptr的產生更小的運行時數據結構和獨特的_ptr更快的代碼?

    -1熱度

    1回答

    我有一個C++項目,它使用了包括std :: make_unique在內的一些C++ 14功能。 該項目編譯和運行良好,並做了一段時間,但是,現在我想添加一個python界面,我有一些麻煩。 在我的Python擴展我試圖聲明我的C++類作爲唯一使用: #include <memory> ... typedef struct { PyObject_HEAD std::uniq

    0熱度

    1回答

    我在試圖刪除QTreeWidgetItem的代碼中遇到一個奇怪的問題。特別是,我有這個在我的課: std::map<int, std::unique_ptr<QTreeWidgetItem>> mymap; 當我關閉應用程序,我有段錯誤,該unique_ptr的默認析構函數中。於是,我嘗試將問題分解,和我創建一個析構函數執行以下操作: ~MyClass() { for (auto x

    1熱度

    1回答

    我在其他地方搜索了這裏,找到了解決我的問題和疑慮的方法,但沒有找到任何答案。 限制條件: 我使用C++ 11一個嵌入式設備上。 我不能使用std::string 我不能使用std::make_unique()(但我可以用std::unique_ptr與new) 我不能使用strcpy_s() 問題我有 我遇到的主要問題是在AvailableZones::upsertZone方法中,如果它尚未存在(

    2熱度

    2回答

    多年後回到C++;試圖追趕C++ 11 & 14.我讀過rvalues和移動語義。我以爲我理解了這個概念。顯然不是。我看了幾十個例子。但我根本無法讓我的代碼編譯。我必須在示例中錯過某些明顯的東西。由於unique_ptr<int>有一個用戶聲明的移動ctor,我總是會得到有關複製ctor被刪除的錯誤。顯然我對這個概念缺少了一些東西,但我無法弄清楚它是什麼。這裏的代碼,精簡到它的本質: #inclu