shared-ptr

    2熱度

    1回答

    我對使用共享指針的if子句中的評估順序有疑問。 假設我有以下 struct MyClass { bool canUse(){ return false; } // dummmy value } std::shared_ptr<MyClass> myclass_ptr_; /// other code.. if(myclass_ptr_ && myclass_ptr_->ca

    -1熱度

    1回答

    我可能有這個錯誤的一些方面,這實際上是我第一次特別用共享指針進行處理。 我正在穿越一棵樹。我的樹由一個鏈表組成,其中有一個共享指針向量,代表每個節點的所有子對象。要遍歷,我(與開始)試圖做到這一點: //-------------------------------------------------------------- void setupMesh(){ Mesh mesh;

    -2熱度

    1回答

    時,下面的代碼不會編譯: class A : B, std::enable_shared_from_this<A> { public: A(); virtual ~A(); public: void initStr(std::string str=""){m_STR = str;}; private: std::string m_STR; };

    0熱度

    1回答

    我是C++新手。有人可以請讓我知道什麼是錯用下面的代碼段 - class Person { public: const std::string& name; Person(const std::string& s): name(s) {} void dump(void) const { cout << name << endl;

    2熱度

    2回答

    假設我們有以下功能: void doStuff(const std::vector<std::shared_ptr<const Foo>>& fs) { } 有沒有一種辦法(安全)傳遞一個std::vector<std::shared_ptr<Foo>>這個參數?例如: std::vector<std::shared_ptr<Foo>> foos; doStuff(foos); 這種隱式

    1熱度

    1回答

    我有一個類gamma,如下所示。 當make_nvp函數嘗試反序列化現有的xml文件時,加載函數會引發段錯誤。該錯誤是當我使用std::shared_ptr<std::tuple<double,double,double>> val; 相反,如果VAL只是std::tuple<double,double,double> val; 然後一切似乎很好地工作(當然,我改變了getter和setter函數

    0熱度

    1回答

    我目前正在使用C++擴展自己的知識。爲此,我編寫了一個模板網絡。 (實際演習是Project Euler's problem 107,如果有人有興趣。) 現在讀了關於C++ 11球,爲我的類中的下列設計看起來似是而非: template< typename T, size_t D > class Network<T,D> { public: Network();

    1熱度

    1回答

    說我們有一個類Foo定義如下: // foo.hpp class Foo; using FooCallback = std::function<void(std::shared_ptr<Foo> ins)>; class Foo : public std::enable_shared_from_this<Foo>{ public: Foo(int b, const FooCa

    4熱度

    1回答

    我已經實現了一個功能,身份給我和我的控制。它返回std::shared_ptr<const void>。在函數中,我分配了任意數量的內存,並通過shared_ptr返回對它的訪問。 我的存儲器分配是用new unsigned char[123]完成的。問題在於valgrind檢測到新變量和刪除變體的使用不匹配。雖然我使用new[](unsigned)來分配內存,但shared_ptr析構函數使用d

    1熱度

    1回答

    我想將一個C++庫SWIG到Python。其中一個C++函數返回一個shared_ptr。我成功地生成了一個Python模塊,但該函數返回給Python的對象似乎沒有成員。這是SWIG處理shared_ptr的限制還是我做錯了什麼? 這大約是我的代碼的結構: //foo.h namespace MyNamespace { class Base {}; template <t