shared-ptr

    3熱度

    1回答

    我有一個STL映射,它包含共享指針,指向在多個線程中操作的對象。 shared_ptr擁有的對象正在被刪除,而智能指針仍然存在於容器和/或其他函數的範圍中。所有的shared_ptr實例都是按值傳遞的(所以它不會導致濫用引用的問題)。我在這個源here的印象之下,只要存在shared_ptr的實例(它是從現有的shared_ptr複製的),它擁有的對象將不會被釋放。 這裏基本上是我在做什麼: /*

    6熱度

    4回答

    我有一個類,它有一個boost::asio::io_service對象。我想將這個對象存儲在boost::shared_ptr中。 所以我的頭看起來像這樣(我擺脫任何不必要的代碼,以便它不會分散) class CommandDispatcher { private: boost::shared_ptr<boost::asio::io_service> m_ioservice; pu

    1熱度

    1回答

    我想通過調用另一個類的方法來傳遞MyClass對象的引用。 這是MyClass的是如何定義的 typedef boost::shared_ptr<class MyClass> MyClassRef; class MyClass { //bla bla bla }; MyClass::method(){ someObject->someMethod(this); //t

    4熱度

    1回答

    我有應能夠通過TCP調度信息的一類。在這裏,簡化接口: class CommandScreenshot : public CameraCommand { public: CommandScreenshot(); ~CommandScreenshot(); void Dispatch(boost::shared_ptr<boost::asio::io_service

    0熱度

    1回答

    需要關於我無法弄清楚的錯誤消息的幫助。我得到以下: Error 1 error C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'Physics::Box2D' to 'std::tr1::shared_ptr<_Ty> &&' d:\visual studio 2010\pro

    2熱度

    2回答

    在UML類圖中是否有一種公認的描述由boost共享指針保存的對象的方法(即應該使用哪一個,並使用空的或完整的菱形,如聚合或合成)?

    0熱度

    1回答

    我需要幫助試圖檢索在std::list<boost::shared_ptr<boost::any>> 我上一個Singleton Controller類的工作與私人std::list保持數據。客戶端類將能夠通過此Controller類添加/刪除/編輯程序要使用的具體類對象。 使用boost::shared_ptr的原因是因爲我爲每個創建的具體類分配了一個唯一的objID。一旦實例objs被添加到控

    2熱度

    1回答

    我有點習慣於COM的refcounting的概念,我對shared_ptr有點新鮮。 CComPtr有幾個不錯的屬性,我沒有在shared_ptr中找到,我想知道防止miss_pub的模式是什麼。 的的AddRef /釋放模式保證有每個對象只有一個引用計數(引用計數存儲對象本身),因此它是安全的,當你有一個隨機指針創建一個圍繞它但是CComPtr。另一方面,shared_ptr有一個單獨的refc

    1熱度

    2回答

    也許我在這裏過於雄心勃勃,但我試圖通過像這樣的Exception將shared_ptr傳回Java。 我能夠在java中捕獲異常,但是當我嘗試訪問ManagementProcessor對象本身中的任何方法時,我得到一個SIGSEGV。如果我使用新的ManagementProcessorPtr()發送一個空的,我會得到正確的行爲(我拋出一個不同的異常)。 任何見解? 謝謝! -chip typede

    3熱度

    1回答

    我正在從C++ API中導出幾個類的DLL。 公共類的接口應遵循以下約定: 所有函數返回錯誤代碼。 輸出參數用於附加的返回值。 傳遞指針用於輸出參數。 傳遞const引用用於輸入參數(通過基元類型的值傳遞)。 當客戶端應該取得輸出參數shared_ptr的所有權時使用,否則爲正常指針。 實例接口: typedef std::shared_ptr<Object> ObjectPtr; class